要修改序列,请使用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" }