在MongoDB中,执行文档“u id';s在整个集合或整个数据库中是否需要唯一?

在MongoDB中,执行文档“u id';s在整个集合或整个数据库中是否需要唯一?,mongodb,Mongodb,我正在用几个集合建立一个数据库。我计划对主集合中的所有文档使用唯一的字符串。其他集合中的文档将引用主集合中的文档,这意味着我必须在其他集合中保存所述id。但是,如果_id只需要在集合中是唯一的,而不需要在整个数据库中是唯一的,那么我只需要让其他集合中的_id也使用前面提到的唯一字符串 另外,我假设为了设置我自己的_id,我所要做的就是在我插入的文档中有一个“_id”:“unique_string”属性,对吗?我不需要将“unique_string”转换成另一种格式,对吗 另外,假设我能用一个变量

我正在用几个集合建立一个数据库。我计划对主集合中的所有文档使用唯一的字符串。其他集合中的文档将引用主集合中的文档,这意味着我必须在其他集合中保存所述id。但是,如果_id只需要在集合中是唯一的,而不需要在整个数据库中是唯一的,那么我只需要让其他集合中的_id也使用前面提到的唯一字符串

另外,我假设为了设置我自己的_id,我所要做的就是在我插入的文档中有一个
“_id”:“unique_string”
属性,对吗?我不需要将“unique_string”转换成另一种格式,对吗

另外,假设我能用一个变量来保存字符串“\u id”并使用它吗?需要明确的是,如下所示:
var id=“\u id”
然后在代码中(例如在插入或查询期间)有
id:“unique\u string”


最好的,谢谢,
Sami在一个集合中必须是唯一的。您可以通过在两个不同的集合中插入两个具有相同
\u id
的文档来快速验证这一点

你的其他假设是正确的,只要尝试一下,看看它们是否有效(它们会)。布丁的证据就在于吃


注意:直接使用
\u id
var id=“\u id”
只是编译代码。

谢谢!我想你是对的,我自己也可以很容易地尝试一下。此外,id=“\u id”问题更多的是针对给定文档中的其他潜在密钥,而不是“\u id”本身。如果对一个人有效,对其他人也有效。谢谢你的回复!我很感激!嘿,yi_H,我只是想让你知道你的答案的后半部分是不正确的。不能使用变量来表示键-至少不能直接表示。如果要对这些行中的变量执行任何操作,您必须事先保存一个文档并将该文档传递到查询中。@thisissami:我不明白您的意思。。。我能想到它不起作用的几个原因,例如:在javascript对象文本中,关键部分被解析为字符串(这就是为什么您永远不必引用它)。您可以使用
id=“\u id”;doc={…};单据[id]=值