【发布时间】:2022-01-17 06:43:37
【问题描述】:
我有这个架构:
...
recommended:{
type:[{
movieId:String,
recommendedBy:[String]
}],
default:[],
},
name: {
type: String,
}
从请求中我得到movieId 和id。
如果已经没有其他具有相同movieId 的项目,我想向recommended 数组添加一个新对象,并在这两种情况下将id 添加到recommendedBy 嵌套数组中。
到目前为止我有这个:
const user = User.findByIdAndUpdate({_id:'123'},
{$AddToSet:{'recommended.$[movie].recommendedBy':id}},
{arrayFilters:[{'movie.movieId':movieId}]})
这只会将已存在项目的recommendedBy 设置为具有相同movieId,
但不会使用新的movieId 属性推送新对象。
(所以这两个数组基本上都是 $AddToSet )
我怎么能做到这一点?谢谢!
【问题讨论】:
标签: javascript node.js arrays mongodb mongoose