众所周知,mongoDb 默认驱动程序不支持自动整数 ID 生成。 我花了 2 天时间思考如何实现我自己的唯一整数值的 id 生成器。 那么,如何制作呢?
最佳答案
在 MongoDB 中创建自动增量 ID 不是一个好习惯,因为我会在扩展您的服务器时受到伤害,但是如果您想创建自动增量值,则不建议迭代您的集合,而是制作一个单独的表(序列如概念)并从那里读取值并使用 findAndModify 递增它。每个表都是唯一的。
> db.counters.insert({_id: "userId", c: 0});
> var o = db.counters.findAndModify(
... {query: {_id: "userId"}, update: {$inc: {c: 1}}});
{ "_id" : "userId", "c" : 0 }
> db.mycollection.insert({_id:o.c, stuff:"abc"});
> o = db.counters.findAndModify(
... {query: {_id: "userId"}, update: {$inc: {c: 1}}});
{ "_id" : "userId", "c" : 1 }
> db.mycollection.insert({_id:o.c, stuff:"another one"});
关于c# - 如何制作整数 ID 生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049222/