增加嵌套数组中的所有元素

时间:2014-07-17 13:39:26

标签: mongodb

我有一个这样的文件:

{
     _id: ".....",
     messages: [
        {
          ....
          votes: 2
        },
        {
          ....
          votes: 2
        }
     ]
}

我想在同一个请求中增加数组中的所有投票字段。

怎么做? $运算符只选择第一个元素。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可能必须使用一些JS循环执行此操作:

db.collection.find( { "_id": SOME_ID } ).forEach( function( doc ) {
  for ( i in doc.messages ){
    doc.messages[ i ].votes += 1;
  }
  db.collection.save( doc );  
} );

我在这里做的是迭代光标中的每个文档并迭代它的messages属性,将每个元素的votes属性递增一个。< / p>