gpt4 book ai didi

C# - 使用 NoSQL (MongoDB) 生成类似 Id 的 "identity"?

转载 作者:可可西里 更新时间:2023-11-01 10:01:31 25 4
gpt4 key购买 nike

我一直在将 MongoDB 与 C# 结合使用,并且一直在使用 ObjectId,后来又将 GUID 用于我的实体 ID。我讨厌看这些 ID,我认为这是违反直觉的……我真的很想能够使用整数或长整数,比如关系数据库的身份列。但是我很难找到一种方法来做到这一点。如果我使用 collection max + 1,那将导致竞争条件。我读过有关使用 Hi-Lo 生成器算法的信息,但它是如何工作的?如果我有 10 个应用服务器运行相同的代码怎么办?这是否意味着每个集合必须有 10 个 hi lo 标识范围?

如果有人能给我指出一个 C# 算法来分享,那就太好了!顺便看到了RNGCryptoServiceProvider,但这并不能保证是唯一的,也不是一个连续的int/long Identity。那时我宁愿使用 Hi-Lo...

谢谢,蒂姆

最佳答案

您可以编写自己的 ID 生成器并使用它。 Here你可以找到方法。但是 ObjectId 被设计为在所有分片/副本集中都是唯一的。因此每个分片都可以独立于其他分片生成唯一的 ID。在分布式数据库中使用 int id 你会遇到很多问题。

关于C# - 使用 NoSQL (MongoDB) 生成类似 Id 的 "identity"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6855084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com