我在 mongoose 中使用更新时遇到问题。我有一个看起来像这样的集合:
{
"client": "XXXXX",
"counts": [
{
"bank": "XXXXX",
"agency": "XXXXX",
"count": "XXXXX",
"value": "XXXXX",
},
{
"bank": "XXXXX",
"agency": "XXXXX",
"count": "XXXXX",
"value": "XXXXX",
}
]
}
我想做的是更新银行和代理机构匹配的客户计数的关键“值”。
我试过了:
model.find({
"client": "XXXXX",
"counts": {
"$elemMatch": {
"bank": "bank name",
"count": "count number"
}
}
})
但没有任何反应。有人可以帮我吗?
答案 0 :(得分:1)
为了更新你应该使用 update
或 updateOne
或 findOneAndUpdate
函数,但你使用 find()
,改变它
const filter = { name: 'Jean-Luc Picard' };
const update = { age: 59 };
// `doc` is the document _before_ `update` was applied
let doc = await Character.findOneAndUpdate(filter, update);
检查 $elemMatch in update 是否需要更新数组