讨论:mongodb的id自增处理
话说mongodb的id没法自动递增提供了个_id也不知道怎么获取对象的字符串来用。先说说我的方法吧定义了一个ids表用来存放控制所有表的id,下面代码是Model部分
function Ids(tablename, id) {
this.id = id;
this.tablename = tablename;
}
module.exports = Ids;
Ids.getId = function (tablename, callback) {
mongodb.open(function (err, db) {
db.collection('ids', function (err, collection) {
collection.findAndModify({"tablename":tablename}, [], {$inc:{'id':1}}, {new:true, upsert:true}, function (err, doc) {
mongodb.close();
callback(doc.id);
});
});
});
}
各位攻城狮你们怎么处理的啊
18 回复
也是这么做的。$inc是原子操作,所以不用担心并发问题。
我是mongo初学者,用的是mongoose,我用_id来find好像找不到,是不是mongo内的id最好还是我们自己设置一个字段来读取啊?
什么意思,为什么要自己处理ID?
@duyinghua _id 你一定要ID自增喽?ID自增有什么意义呢?
@duyinghua db.toId
我运行,没有成功,后台没有输出任何东西。另外,这个的原理是不是,存的每个表的最大的ID。
MongoDB 自增id的实现 http://inosql.org/topic/50caa33fee680fee79000c82
model.find({"_id":Object('521604c2556de2b41d00000b')}, function(err, result){
console.log("err : " + err + " result : " + result + "");
})
{_id : ObjectId(‘50a213a7637ffa4155b77f73’)}
楼主好啊,这个可以用在给发布的博客添加id吗
你好啊,大哥,可以请教您一下吗
弱弱的问问tablename是什么意思,如果想在一张表格中存三个不同的自增id,比如会员id,博客id,应该如何处理呢
遇到同样的问题,学习下,谢谢