例如,如果我想将用户名作为我的 mongo 文档的唯一 ID 而不是默认的“_id”怎么办?
我想使用 mongo.exe 控制台来实现这一点。
MongoDB 需要 _id 属性作为它自动索引的唯一主键。
你有两个选择:
_id
在复制中很重要。您可以创建没有_id
索引的集合,但您将永远无法复制数据库。复制需要 _id
每个集合上的索引。
我知道,有可能有像 {username: "John", age: 12} 这样的记录。我的意思是,没有_id。这该怎么做?
我不确定@Serges 的答案是如何不够清楚的,但是要重复一遍,没有办法。从技术上讲,您仍然可以在某些版本的 MongoDB 中取出上限集合中的 _id,但您不能这样做。
此外,我担心您使用用户名,这可能不是分片等活动的最佳选择,并且可能在集群等上创建高活跃度的“热点”,这都是理论上的,因为我不适合您的数据,但是,最好考虑一下这些东西。