mongodb更新所有文档,并将值递增1

时间:2018-03-31 05:51:31

标签: mongodb

我在mongoDB中有几个文档,doc结构就像这样

{
"a":"abc",
"myid":2
}

我想更新" myid"所有文件的1.例如第一个文件myid = 1,第二个文件myid = 2等等。有查询吗?

2 个答案:

答案 0 :(得分:1)

尝试此查询:

db.collection.updateMany(
 {},
 {$inc:{myid:1}}
)

答案 1 :(得分:-2)

创建一个名为Counter的单独Collection,以跟踪最后一个序列号。

    db.counters.insert(
    {
        _id: "userid",
        seq: 0
    });

创建一个函数来获取Counter集合的seq值。

function getNextSequence(name) {
      var ret = db.counters.findAndModify(
      {
        query: { _id: name },
        update: { $inc: { seq: 1 } },
        new: true
      });
      return ret.seq;
}

并增加您的自动增量字段,如下所示。

db.collection.insert({
   "a":"abc",
   "myid": getNextSequence("userid")
});

我希望这会对你有所帮助。