我搜索了所有stackoverflow,但没有找到解决我问题的任何东西。
这是我的猫鼬用户架构:
name: String,
movies: [new Schema({
state: String,
rate: String,
note: String
})]
例如,我想在此处使用note
将test
更新为_id: 20
。但我不想发送包含所有rate
,state
和note
值的整个电影对象。
name: Mehdi,
movies: [
{
_id: 10,
note: 'This is awesome',
rate: 10
},
{
_id: 20,
rate: 7
}
]
这是我目前的代码:
它会覆盖整个电影对象。
User.findOneAndUpdate({
_id: user._id,
'movies._id': 20
}, {
$set: {
'movies.$': movie
}
}, {
new: true
})
我应该find
然后使用普通JS然后.save()
来做它吗?
这不是MongoDB - Update objects in a document's array (nested updating)的确切问题。因为我不想发送整个对象。我可能只想发送
_id: 10,
state: 'watched'
P.S。
我找到了this插件,但它没有针对数组中特定对象的解决方法。