我的文档中有以下结构:
{
_id : ObjectId("43jh4j343j4j"),
array : [
{
_arrayId : ObjectId("dsd87dsa9d87s9d7"),
someField : "something",
someField2 : "something2"
},
{
_arrayId : ObjectId("sds9a0d9da0d9sa0"),
someField : "somethingElse",
someField2 : "somethingElse2"
}
]
}
我想更新someField和someField2但仅针对数组中的一项,即与_arrayId匹配的一项(例如_arrayId : ObjectId("dsd87dsa9d87s9d7")
;并且仅针对此文档(例如_id : ObjectId("43jh4j343j4j")
)而没有其他项。
arrayIds不是文档独有的,这就是我需要它用于特定文档的原因。如果我想为它存在的每个文档更新数组中的值,我可以使用$ positional operator
它,但这不是我想要的。
我正在尝试在java中完成此操作,但命令行解决方案也可以。