私は複数のインデックスを持つコレクションを持っており、しばしばそのコレクションの配列にいくつかのデータをプッシュする必要があります。私はMongoDBのドキュメントを通過しようとしましたが、私は得ることができる最高だった、国連索引フィールドに挿入および更新のために
、スパースインデックスのオーバーヘッドが非スパースインデックスよりも小さいです。非スパースインデックスの場合でも、レコードサイズを変更しない更新では、インデックスのオーバーヘッドが少なくなります。
私は疎インデックスと非疎インデックスの違いを認識しており、疎インデックスのオーバーヘッドはそれほど大きくないと考えています。
なぜ、私のドキュメントのインデックスのないフィールドだけを更新していても、他のすべてのインデックスを更新する必要があるのはなぜですか。それはすべてのインデックスが同じデータを持ち、すべてのデータを更新する必要があるからですか?
マイドキュメント
var sample = new Schema({
***
student_list: [ {type :Schema.Types.Mixed}],
location: [ {type :Schema.Types.Mixed}],
****
});
student_list.studID will be indexed
{studID:1,city:M,Time:"... e}
は、今私は、多くの場合、場所フィールドを更新する必要があります。
db.sample.find({student_list.studID:"studid"})
db.sample.find({student_list.studID:"studid", student_list.city:"M"})
all using student_list_studId_1 index
問い合わせこのアプローチは大丈夫ですか、それとも私が差分コレクションを作成するものとし、別々のドキュメントなど、すべての生徒のリストと、(すべてのサンプルドキュメントは、差分サンプルドキュメント全体に共通することも、複数の学生のIDを持っています)
mongoのどのバージョンですか?どのタイプのストレージエンジンを使用していますか? – profesor79
今のところMLabフリープラン – Bikash
サンドボックス\tはmongo 3.0.xを使用しています – profesor79