【发布时间】:2018-12-21 03:11:26
【问题描述】:
根据标题,我有一个属性books 定义为
books: [{
ref: 'Book',
type: Schema.Types.ObjectId,
}]
我正在尝试更新它
await MyModel.updateOne({ id: myId }, { $push: { books: book._id } })
但是每次调用上述更新时,整个数组都会被替换为一个元素的数组(“元素”是最后推送的元素)。因此我最终得到了类似的东西
"books": [
{
"$oid": "5b47aa8ae2d927da983733cb"
}
]
总是只有一个元素。
这发生在运行
- 节点 8.10
- 猫鼬 5.14
我做错了什么?
【问题讨论】:
-
请尝试更新一次
MyModel.update({ id: myId }, { $push: { books: book._id } })如果不起作用,请发布您的完整代码 -
成功了,谢谢!有什么具体原因吗?将您的评论移至回答,我会将其标记为已解决。再次感谢。
-
不知道!!!我从未使用过
updateOne,但确实使用过update,这就是我建议你的原因...
标签: arrays mongodb mongoose updates mongoose-schema