是否存在从15更新sc的查询,对于_id 1的id为2的数组元素,请说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小时前
答案 0 :(得分:16)
您可以使用以下查询进行更新:
db.myCollection.update({"_id" : 1, "lb.id" : 2},{$set : {"lb.$.sc" : 17}})
AFAIK,无法在单个查询中执行您想要的操作。你必须为每个人分别进行查询。