我具有以下结构:
{
id: "1",
invoices: [{ id: "1", balance: 1},{ id: "2", balance: 1}]
},
{
id: "2",
invoices: [{ id: "3", balance: 1},{ id: "4", balance: 1}]
}
我得到了我不应该更新的发票ID列表,其余的我需要将余额更新为0。
我对MongoDB还是很陌生,并且设法找到一种方法。
答案 0 :(得分:0)
首先,您忘记了字段名称周围的引号。您的文档应如下所示:
{
"id": "1",
"invoices": [{
"id": "1",
"balance": 1
}, {
"id": "2",
"balance": 1
}]
}
我在本学期在大学学习时,对MongoDB的经验有限。但是,这是我的解决方案:
db.collection.update(
{ id: "1" },
{
$set: {
"invoices.0": { id: "1", balance: 0 }
}
}
)
此解决方案有什么作用?
尝试看看是否可行。如果没有,我希望有更多经验的人来纠正我。
LE:现在可以了,尝试看看。
答案 1 :(得分:0)
假设您要更新ID为1的所有发票,但invoice.id 2除外,请尝试以下操作:
db.collection.update(
{ id: "1", "invoices.id": {$ne: 2} },
{
$set: {
"invoices.$[]": { balance: 0 }
}
}
)