【发布时间】:2020-06-11 16:54:45
【问题描述】:
我在使用 Mongoose 中的“$in”运算符时遇到问题。在高层次上,我有一个用户模式,其中一个字段是卡片模式的数组。在 Card 模式中有一个“score”字段。我想根据卡片 ID 列表更新“分数”字段。这是我正在尝试使用的:
User.updateMany(
{
"_id": userId,
"cards._id": {
"$in": cardIds
}
},
{ $inc: {"cards.$.score": 1 }},
(err) => {console.log(err)}
)
当我运行此代码时,仅更新 cardIds 数组中的第一张卡片,而不是全部更新。知道为什么这不起作用吗?谢谢。
【问题讨论】:
-
你试过
cards.score吗? -
是的,我试过了,它会抛出一个错误。如果没有 $,它似乎正在尝试创建一个名为“score”的新字段。
标签: javascript node.js mongodb mongoose