我需要在
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++; });
像这样的事情会改变.