0

別の配列内にある配列に値を追加したい。私のドキュメントは次のようなものです。

{categories:[{categoryName:"a category", items:[{itemName:"an item", arrayOfValues:[1]}]}]}

$addToSetをarrayValuesに使用したいと思います。そうするために、私はクエリで更新を行っています

table.update({"categories.items.itemName" : "anItem"}, {$addToSet: "categories.$.items.$.arrayOfValues":"10"})

しかし、エラーが発生します:文字列フィールド名[$]を使用して配列に追加できません

私は何が間違っているのですか?ネストされた配列で更新することは可能ですか?

ありがとう

4

1 に答える 1

3

$addToSet配列内の配列は、現在、悪いmongodb設計と見なされています(主に、友人を使用して効率的に操作できないため)。そして、それをさらに一歩進めて、配列内の配列内に配列を作成しました!

MongoDBのスキーマがないという性質により、任意の構造のドキュメントをその中にスローして、後で処理できるという感覚が生じる可能性があることを理解しています。残念ながら、これは現実ではありません。自分が何をしているのか、どのような機能と制限があるのか​​を知る必要があります。この場合、位置演算子を使用して要素をネストされた配列にプッシュすることはできません

于 2012-02-14T21:14:49.310 に答える