2011-12-20 7 views

答えて

2

ため

おかげでそこにMongoDBにはスキーマはませんので、あなたはすべての文書にフィールドを追加する必要はありません。 このフィールドを使用して新しい文書を書き始めるか、古い文書を更新するときにこの値を使用してください。

インデックス作成では、sparse indexesを利用できるようになりました。ほとんどのドキュメントにこのフィールドがないと効率が向上します。

また、このkeywordフィールドを配列にすることもできます。文字列よりも効率的に処理できます。あなたは、コレクション内のすべてのの文書に同じ値を持つフィールドを追加したい場合は

、あなたがこれを使用することができます:

db.collection.update({}, // update all documents 
        {$set : {keyword : []}}, // or another value 
        false, // is upsert? 
        true) // is multi-update? 

をあなたが$setを行うと、あなたは他の値を使用することはできませんフィールド。したがって、この新しい値が他のフィールドの関数となる場合、他のオプションはありませんが、ドキュメントをループして1つずつ更新することはできません。

+0

しかし私は私の質問で言及したように、現在のドキュメントを更新し、 "キーワード"と呼ばれる別のフィールドを追加する必要があるので、スキーマに関連しない、私はちょうど新しいフィールド'name'、 'address'ブランチとcityフィールドの値を組み合わせる – randomKek

+0

文書をループして1つずつ更新する必要があります。フィールドを設定するときに(他のフィールドの値を使用することはできません) –

関連する問題