mongodb 自增id的解决方法
mongodb id autoincrement
mongodb 没有自增id的解决方法
1.
function insertObject(o) {
x = db.myCollection;
while( 1 ) {
// determine next _id value to try
var c = x.find({},{_id:1}).sort({_id:-1}).limit(1);
var i = c.hasNext() ? c.next()._id + 1 : 1;
o._id = i;
x.insert(o);
var err = db.getLastErrorObj();
if( err && err.code ) {
if( err.code == 11000 /* dup key */ )
continue;
else
print("unexpected error inserting data: " + tojson(err));
}
break;
}
}
2.建立一个自增id的集合
//初始化
db.ids.save({'_id':'main','id':0});
//每次使用的时候自增下
db.ids.update({"_id":"main"},{$inc:{'id':1}});
> db.ids.save({'_id':'main','id':0});
> db.ids.find()
{ "_id" : "main", "id" : 0 }
//每次使用的时候自增下
> db.ids.update({"_id":"main"},{$inc:{'id':1}});
> db.ids.find()
{ "_id" : "main", "id" : 1 }
> db.ids.save({'_id':'user','id':0});
> db.ids.update({"_id":"user"},{$inc:{'id':1}});
> db.ids.find()
{ "_id" : "main", "id" : 1 }
{ "_id" : "user", "id" : 1 }
//此操作是原子操作
db.ids.update({"_id":"main"},{$inc:{'id':1}});
mongodb id autoincrement
mongodb 没有自增id的解决方法
1.
function insertObject(o) {
x = db.myCollection;
while( 1 ) {
// determine next _id value to try
var c = x.find({},{_id:1}).sort({_id:-1}).limit(1);
var i = c.hasNext() ? c.next()._id + 1 : 1;
o._id = i;
x.insert(o);
var err = db.getLastErrorObj();
if( err && err.code ) {
if( err.code == 11000 /* dup key */ )
continue;
else
print("unexpected error inserting data: " + tojson(err));
}
break;
}
}
2.建立一个自增id的集合
//初始化
db.ids.save({'_id':'main','id':0});
//每次使用的时候自增下
db.ids.update({"_id":"main"},{$inc:{'id':1}});
> db.ids.save({'_id':'main','id':0});
> db.ids.find()
{ "_id" : "main", "id" : 0 }
//每次使用的时候自增下
> db.ids.update({"_id":"main"},{$inc:{'id':1}});
> db.ids.find()
{ "_id" : "main", "id" : 1 }
> db.ids.save({'_id':'user','id':0});
> db.ids.update({"_id":"user"},{$inc:{'id':1}});
> db.ids.find()
{ "_id" : "main", "id" : 1 }
{ "_id" : "user", "id" : 1 }
//此操作是原子操作
db.ids.update({"_id":"main"},{$inc:{'id':1}});