は、私は私の文書には、以下の構造を有する:MongoDBの特定のドキュメントの配列内の特定の埋め込みドキュメントの値を更新するには?
{
_id : ObjectId("43jh4j343j4j"),
array : [
{
_arrayId : ObjectId("dsd87dsa9d87s9d7"),
someField : "something",
someField2 : "something2"
},
{
_arrayId : ObjectId("sds9a0d9da0d9sa0"),
someField : "somethingElse",
someField2 : "somethingElse2"
}
]
}
は、私が唯一の配列内の項目の一つ、_arrayId(例えば一致するいずれかのsomeFieldとsomeField2を更新したい_arrayId : ObjectId("dsd87dsa9d87s9d7")
;のみ、この文書(例えば_id : ObjectId("43jh4j343j4j")
)なしその他について
arrayIdsが、私はそれが特定のドキュメントのためにする必要が理由です文書に固有のものではありません。碑文。存在するすべてのドキュメントの配列内の値を更新したい場合は$ positional operator
を使用できますが、それは私が望むものではありません。
私はjavaでこれを達成しようとしていますが、コマンドラインソリューションも同様に機能します。
!ありがとう。したがって、 'coll.update(query、data)'のクエリは、あなたが探しているドキュメントを見つけるためのフィルタのように機能し、あなたが興味を持っているドキュメントの部分のセレクタとして機能しますか? – rjgonzo
はい正確に..うれしいことに.. – RameshVel