我有一个这样的文件:
{
_id: ".....",
messages: [
{
....
votes: 2
},
{
....
votes: 2
}
]
}
我想在同一个请求中增加数组中的所有投票字段。
怎么做? $运算符只选择第一个元素。
谢谢!
答案 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>