MongoDBスキーマデザインにネストされたドキュメント構造を使用する予定です。私はフラットスキーマデザインにしたくありません。私の場合、1つのクエリでのみ結果を取得する必要があります。mongodbでネストされたドキュメント構造を使用する
MongoDBにはドキュメントのサイズ制限があります。 MongoDB Limits and Threshold
A MongoDB document has a size limit of 16MB (an amount of data). If your subcollection can growth without limits go flat.
私は、ネストされたデータをフェッチする必要はありませんが、唯一のフィルタリングのための私のネストされたデータを必要とし、目的を照会すること。
質問とフィルタリングの目的でのみ埋め込みデータを使用してもネストされたデータをフェッチしない場合でもMongoDBのサイズ制限に拘束されるかどうかを知りたいのですが、この場合はMongoDB完全なドキュメントをメモリにロードせず、選択したフィールドのみをロードしますか?
ネストされたスキーマの設計例
{
clinicName: "XYZ Hopital",
clinicAddress: "ABC place.",
"doctorsWorking":{
"doctorId1":{
"doctorJoined": ISODate("2017-03-15T10:47:47.647Z")
},
"doctorId2":{
"doctorJoined": ISODate("2017-04-15T10:47:47.647Z")
},
"doctorId3":{
"doctorJoined": ISODate("2017-05-15T10:47:47.647Z")
},
...
...
//upto 30000-40000 more records suppose
}
}
お返事ありがとうございます。 '' 'db.Clinic.update({" _ id ":ObjectId(" 58e5e3ec54ccefdd4d85f638 ")}、{$ set:{"} "のようにドキュメント全体を読み込むのではなく、 doctorsWorking.doctor5 ":{ "doctorJoined":ISODate(" 2017-05-15T10:47:47.647Z」) }}} '' この方法を使用してのみ提供される特定のフィールドを更新する どうI。このメソッドを使用しても、または更新されているドキュメントの一部だけでも、完全なドキュメントをメモリにロードするかどうかを知りたい場合は https://docs.mongodb.com/manual/reference/operator/update/set/ –
@RobinsGupta MongoDBは、ドキュメント全体が大きすぎることを知り、更新を停止します。 –
@RobinsGupta 16 MB以上のドキュメントは許可されません。いずれかの更新、挿入、またはアップアップのいずれかによって。 –