【发布时间】:2018-09-14 16:11:01
【问题描述】:
{
movies: [
{
_id,
title,
rating
}
]
}
我只想更新标题或评级或两者都存在。
我的查询应该是这样的
Movies.findOneAndUpdate('movies._id': movieId, {
movies.$.rating: rating,
movies.$.title: title
});
但它不支持多位置运算符。
我认为可能的解决方案是发送整个电影对象并将其替换为
Movies.findOneAndUpdate('movies._id': movieId, {
movies.$: movie
});
我不想替换整个对象,或者我不想从前端发送整个电影对象。
请指导我优化解决方案。
【问题讨论】:
-
您可以使用
arrayFilter更新嵌套数组。