在MongoDB中修改序列

要修改序列,请使用findAndModify()。让我们创建一个包含文档的集合-

> db.demo261.insertOne({_id:100,Name:"Chris"});
{ "acknowledged" : true, "insertedId" : 100 }

find()方法的帮助下显示集合中的所有文档-

> db.demo261.find();

这将产生以下输出-

{ "_id" : 100, "Name" : "Chris" }

以下是修改序列的查询-

> db.demo262.insert({_id:"newId",sequence_value:0})
WriteResult({ "nInserted" : 1 })
> function getNext(sName){
...
...   var d= db.demo262.findAndModify({
...      query:{_id: sName},
...      update: {$inc:{sequence_value:1}},
...      new:true
...   });
...   return d.sequence_value;
...}

以下是调用上述函数以在MongoDB中生成序列的查询-

> db.demo261.insert({
...   "_id":getNext("newId"),
...   "Name":"Chris"
... })
WriteResult({ "nInserted" : 1 })
> db.demo261.insert({    "_id":getNext("newId"),   "Name":"Bob" })
WriteResult({ "nInserted" : 1 })

find()方法的帮助下显示集合中的所有文档-

> db.demo261.find();

这将产生以下输出-

{ "_id" : 100, "Name" : "Chris" }
{ "_id" : 1, "Name" : "Chris" }
{ "_id" : 2, "Name" : "Bob" }