MongoDB _Id字段的值自定义并自增

什么是 MongoDB

MongoDB是一种非关系型数据库(NoSql),一种应对网站的超大规模和高并发需求的数据库。内容以Json格式进行存储,可以直接使用Js进行操作(NodeJs)。

今天主要记录一下,在MongoDb数据库上面,新增一条数据在不设置“_id”字段的数据时,系统则会自动生成一个objectId,并赋值给“_id”。

objectId是一个24位的字符,生成规则。

这个“_id”字段是可以修改的,也是就在新增数据的时候,给它赋值就好。

1
2
3
4
5
6
7
8
9
10
11
12
function getNextSequence(name{      
    var ret = db.counters.findAndModify({
        query:{_id:name}, 
        update:{$inc : {seq:1}}, 
        new:true,
        upsert:true
    });         
    return ret.seq; 
}

db.demo.insert({_id:getNextSequence("demo"), name:"jenki"}) 
db.demo.insert({_id:getNextSequence("demo"), name:"jenkiHuang"})

有了上面的方法,在insert数据的时候,会把自动把数据库里面最后一条数据的“_id”值取出,并加1反回给当前新增数据的“_id”。

这样,就实现了修改主键值,并递增的效果。