如何更新子文档中的多个字段?

时间:2018-09-14 07:45:55

标签: mongodb mongoose

{
   movies: [
          {
            _id,
            title,
            rating
          }
        ]
}

我只想更新标题或等级,或者两者都更新。

我的查询应该是这样的

Movies.findOneAndUpdate('movies._id': movieId, { 
   movies.$.rating: rating, 
   movies.$.title: title 
});

但是它不支持多个位置运算符。

我认为可能的解决方案是发送整个电影对象并将其替换为

Movies.findOneAndUpdate('movies._id': movieId, { 
       movies.$: movie 
    });

我不想替换整个对象,或者我不想从前端发送整个电影对象。

请为我提供优化的解决方案。

2 个答案:

答案 0 :(得分:0)

您可以使用数组过滤器https://jira.mongodb.org/browse/SERVER-1243

<input type="button" disabled="disabled"/>

答案 1 :(得分:0)

for(i in 1:12){
  if(i%%2==1){
    print(i)
     if(i==3){
      print("three")
    }  
  }
 }