2016-04-22 12 views
0

私はMongoDBを習っています。今私を混乱させることは、コレクションはRDBMSのような厳密な構造を強制しないということです。私は、次のパラメータを使用して文書を作成しました:文書の挿入時に例外はありません

db.tempTable.insert({ 
    id: 1, 
    name: umer 
}); 

は、私が挿入された:

db.tempTable.insert({ 
    "id":2, 
    "name": "khan", 
    "yolo":"todolo" 
}); 

両方のクエリが成功しました。私はMongoがコレクションに「YOLO」列を持っていないので、2回目の挿入で例外を発生させると考えました。

なぜですか?テーブルに挿入する際に混乱を避けるために厳密な構造を適用できますか?ベスト

答えて

0

MongoDB is schemaless

。つまり、厳密なスキーマはありません。すべてのドキュメントが同じフィールドを持つように例外を発生させる唯一の方法は、おそらくコードレベルです。ORM

0

@hdと同様、mongodbはスキーマレスです。しかし、あなたがそれらを挿入する前にデータを検証することを可能にするvalidatorsのような方法で遊ぶべき解決策があります。新しいバリの

@example

db.runCommand({ 
    collMod: "contacts", 
    validator: { $or: [ { phone: { $exists: true } }, { email: { $exists: true } } ] }, 
    validationLevel: "moderate" 
}) 
関連する問題