假设我在数据库中有以下 mongo 对象:
{
"_id" : ObjectId("4f904ebb5bebd4375b759c90"),
"findme" : "someValue",
"array" : [
{
"id" : "1234"
"Y" : "0"
},
{
"id" : "3456"
"Y" : "0"
},
{
"id" : "5678"
"Z" : "0"
}
]
}
我知道我可以在java中使用以下点符号访问器更改数组内容...
BasicDBObject change = new BasicDBObject("findme", "someValue");
BasicDBObject setDoc = new BasicDBObject();
setDoc.append("array.0.Y", "0");
setDoc.append("array.1.Y", "0");
setDoc.append("array.2.Z", "0");
BasicDBObject account = new BasicDBObject("$set", setDoc);
coll.update(change, account);
但是,如果我只知道 id 是“3456”而不知道它在“array”中的索引 1 处,我将如何更改“3456”的“Y”值?我真的很想在创建这些查询对象和更新方法的过程中完全实现这一点......换句话说,我宁愿不把整个对象拉出来并遍历“数组”来找出它的位置。
谢谢!
编辑:多个数组元素可以具有字段“Y”,如编辑的代码中所示。我只想编辑特定元素的“Y”字段。