【发布时间】:2020-09-11 10:20:50
【问题描述】:
您好,我正在尝试递增数组中的一个元素,如下所示
{ "_id" : 1
"myarray": [
{"a": 1}
{"b": 1}
{"c": 1}
]
}
{ "_id" : 2
"myarray": [
{"a": 4}
{"b": 7}
{"c": 9}
]
}
db.mycollection({"_id": 1}, {"$inc": {"myarray.$.a"}});
db.mycollection({"_id": 2}, {"$inc": {"myarray.$.b"}});
我知道 mongo $ 运算符用于识别上述数组中的元素。
我要解决的问题是在某些情况下我的数据没有数组
{ "_id" : 3
}
{ "_id" : 4
}
如果我执行db.mycollection({"_id": 3}, {"$inc": {"myarray.$.a"}});,它不会使用 id 更新文档,因为 myarray 不存在文档。
所以我所做的直接修复是在我插入文档时将 myarray 初始化为零
{ "_id" : 3
"myarray": [
{"a": 0}
{"b": 0}
{"c": 0}
]
}
{ "_id" : 4
"myarray": [
{"a": 0}
{"b": 0}
{"c": 0}
]
}
有没有办法直接用零预初始化数组元素进行更新?
【问题讨论】:
标签: arrays database mongodb mongodb-query