gpt4 book ai didi

Mongodb:对象ID作为集合中的短主键

转载 作者:IT老高 更新时间:2023-10-28 13:29:21 24 4
gpt4 key购买 nike

如何更好地利用 MongoDB 生成的 objectId。我不是专家用户,但到目前为止,我最终为我的对象(userid、postid)等创建了单独的 id,因为对象 id 太长并且如果用作主 ID 会使 url 难看。我保持 _id 完整,因为它有助于索引等。我想知道任何更好的策略,以便可以使用 mongo objectId 作为对 url 更友好且易于内存的键。我读到关键是日期等的组合,因此任何部分都可以为此目的在集合中唯一使用。

谢谢,
bsr/

最佳答案

如果您一个现有 ID(来自现有数据集),那么用您的 ID 覆盖 _id 是完全可以的有。

...keeo the _id intact as it help indexing etc

MongoDB 默认索引 _id 字段。如果您开始将整数放入 _id 字段,它们将像其他所有内容一样被索引。

因此,大多数 RDBM 都提供“自动递增”ID。这对于小型数据集来说很好,但在可扩展性方面确实很差。如果您尝试一次向 20 台服务器插入数据,如何保持“自动增量”不变?

通常的答案是你没有。相反,您最终会为这些 ID 使用 GUID 之类的东西。对于 MongoDB,ObjectId 已经提供。

I was wondering about any better strategy so that one can use mongo objectId as more url friendly and easy to remember key

所以这里的问题是“容易记住”的 ID 并不能真正与“高度可扩展的数据库”相结合。当您有十亿个文档时,ID 并不是真的“好记”。

所以你必须在这里做出权衡。如果您有一个可以变得非常大的表,我建议使用 ObjectId。如果您有一个相对较小且不经常更新的表(例如“查找”表),那么您可以构建自己的自动增量。

选择权完全取决于您。

关于Mongodb:对象ID作为集合中的短主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5779671/

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