我在变量结果中有一个类似[{_id:64,minitem:30},{},{}...]
的JSON数组对象。这是聚合操作的结果,它是最小分数的投影。我需要迭代这个结果并从DB中删除minvales。
我无法遍历结果对象..我试过
for(i=0; i<result.length; i++){
db.students.update({
'_id': result['_id']
}, {
'$pull': { 'scores': { 'score': result[i]['minitem'] } }
})
}
这似乎没有效果。数据库没有改变。我是从mongo
shell尝试这个。
答案 0 :(得分:3)
result['result'].forEach(function(doc){
db.students.update(
{'_id': doc._id},
{'$pull':{'scores': {'score': doc.minitem }}}
);
});
使用Mongo Shell中的forEach函数。
请注意,在聚合之后,文档实际上位于当前返回文档中的result
元素内。