运行MongoDB查询以更新循环中的序列字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行MongoDB查询以更新循环中的序列字段相关的知识,希望对你有一定的参考价值。
我有一个集合,我承认从1 db导出并导入到另一个。
我在集合上有一个名为'seqNo'的字段,它只保存文件的运行计数,在导入过程中我导入了重复的seqNo值。
我现在正在尝试,弄清楚如何遍历集合中的文档,在1之后更新文档,并使用该seqNo的递增计数器。
我一直在阅读文档,看看如何使用递增的数字插入,但看起来更像是一个函数,并且不确定如何通过更新来执行此操作。
https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field/
我正在寻找的地方,似乎更像是永恒的东西,而不是我真正想做的事情。
答案
用这个找到我的答案。
在mongo shell中,首先为计数器设置初始值。
var counter = 0
您只需输入变量名称并按回车即可随时在mongo shell中查看此计数器。
> counter
0
现在,创建一个forEach
函数并随时迭代计数器。
db.questions.find({}).forEach(function(doc){
var = counter + 1;
db.questions.update({ _id: doc._id }, { $set: { seqNo: counter }});
})
我花了几次尝试才意识到我确实需要_id: doc._id
更新部分的限定符。没有它,它没有更新任何东西。
以上是关于运行MongoDB查询以更新循环中的序列字段的主要内容,如果未能解决你的问题,请参考以下文章
使用 mongoose 通过 update 方法向 mongodb 中的现有文档添加新字段
使用 mongoose 通过 update 方法向 mongodb 中的现有文档添加新字段