对于 _id 1 的 id 为 2 的数组元素,是否有将 sc 从 15 更新为 17 的查询?我在 mongodb 中有这个结构:
{ _id: 1,
lb: [
{
id: 2,
sc: 15
},
{
id: 3,
sc: 16
}
]
}
{ _id: 2,
lb: [
{
id: 5,
sc: 34
},
{
id: 6,
sc: 12
}
]
}
我还有一个:有没有一种方法可以像您刚才所说的那样编写要更新的查询,如果没有具有更新 id 的数组元素,则插入一个新的。我不想进行两个查询 - 首先检查元素是否存在并更新它,如果不存在则附加它。将它附加到一个查询中会很好。谢谢。 – user3045201 1 小时前
最佳答案
您可以使用以下查询对其进行更新:
db.myCollection.update({"_id" : 1, "lb.id" : 2},{$set : {"lb.$.sc" : 17}})
AFAIK,不可能在单个查询中做你想做的事。您必须对它们中的每一个进行单独的查询。
关于mongodb - 使用 mongo 查询按 id 更新数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262405/