mongodb 自增id 的解决方法

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}});

你可能感兴趣的:(C++,c,mongodb,C#)