我需要在
mongodb集合中插入一个新的字段(列),现在有5246个文档.该字段应该自动递增.所以我使用for循环.我的查询如下:
- for(i=1;i<=5246;i++) {
- db.coll.update({},{$set:{"new_field":i}},false,true)
- };
但是我的输出不好,
- {new_field:5246},{new_field:5246},.......
查询有什么问题吗?
解决方法
为什么要更新所有记录,没有找到标准?从技术上讲,这个循环是正常工作的.您需要做的是循环遍历您的集合的光标,如下所示:
- var cursor = db.coll.find(),i = 0;
- cursor.forEach(function(x){
- db.coll.update({_id: x._id},{$set:{new_field:i}})
- $i++;
- });
像这样的事情会改变.