如何在MongoDB中设置主键?

8 浏览
0 Comments

如何在MongoDB中设置主键?

我想将我的一个字段设置为主键。我正在使用MongoDB作为我的NoSQL数据库。

0
0 Comments

在MongoDB中,_id字段是保留给主键使用的。如果您没有在对象中定义_id字段,MongoDB会使用内部的ObjectId值,并创建一个索引以确保性能。

但是,您可以为_id字段设置自己的唯一值,MongoDB将使用该值而不是为您生成一个。即使您想将多个字段用作主键,也可以使用一个对象来表示:

{ _id : { a : 1, b: 1} }

但是需要注意,当使用对象作为id时,键的顺序(例如示例中的a和b)很重要,如果交换它们,将被视为不同的id。

这很有趣。我是否可以在“archive”集合中使用这种方式来存储我的文档的旧版本?

{ _id: { _id: ...object id..., version: 4 }

_id字段是索引并保存在内存中的,因此基本上您将会将该集合中的所有文档都保存在内存中。

嗯,我会相信MongoDB来管理放入内存的“工作集”。我更关心的是键约束的问题,但我在这里找到了答案:docs.mongodb.com/manual/reference/limits/…

0
0 Comments

在MongoDB中设置主键的问题是出现的原因是为了确保集合中的某个字段的值是唯一的。通过创建索引(Indexes)并确保它们是唯一的方式可以解决这个问题。具体实现方法可以参考链接中的教程。在分片集合中,由于插入和索引操作是在每个分片上进行的,所以唯一索引无法强制执行唯一性约束。

0
0 Comments

在MongoDB中,_id字段被保留为主键,它应该是一个唯一的值。如果不对_id字段进行设置,它将自动填充为"MongoDB Id Object"。但是你可以将任何唯一的信息放入该字段。

然而,有用户提出了一个问题:“如何将我的字段设置为主键,例如,我希望将user_email作为user集合的主键,但是如何将该字段设置为主键并保证唯一性?”

对于这个问题,有人给出了如下回答:“_id字段是默认的索引,需要保证唯一性。因此,将你的唯一约束数据放入该字段中。” (docs.mongodb.com/master/indexes/#default-id-index)

以上就是关于如何在MongoDB中设置主键的讨论。希望对你有所帮助。

0