c# - 如何制作整数 ID 生成器?

标签 c# mongodb

众所周知,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/

相关文章:

c# - 如何在 C# 中创建自己的事件?

c# - 通过序列化支持的单例类

c# - 为什么我无法在 Web Api 中获取 header ?

node.js - 使用 Angular 和 Nodejs 将文件保存到 mongodb

c# - 如何使用 LINQ 根据成员字典键对对象进行分组和投影?

c# - 所选项目ComboBox没有显示正确的ID WPF

windows - 单元测试和启动 MongoDb 服务器

javascript - 如何返回 Mongoose 对象字段(在 Module.exports 函数中)

javascript - 如何根据字段是否存在对MongoDB集合进行排序

javascript - 使用 Node 的 native mongoDB 驱动程序流查询结果