MongoDB(NoSQL)-文档是否可以引用/链接到自身?

MongoDB(NoSQL)-文档是否可以引用/链接到自身?,mongodb,nosql,Mongodb,Nosql,我对DBs的NoSQL方面非常陌生,但我已经使用RDBMs很多年了,主要是MySQL 现在,在MySQL中,我有一个数据库,其中包含大约10000个食物项目(大约再添加15000个),这些项目链接到属性和营养素。就我的研究而言,这似乎是NoSQL的一个很好的用途,但有一部分让我觉得可能不是 据我所知,NoSQL中绝对没有连接(非常高兴这么简单),但现在我们有几个食物项目有些相同,它们都将引用一个,例如: Tomatoes, Raw Tomatoes, Canned Tomatoes, Cooke

我对DBs的NoSQL方面非常陌生,但我已经使用RDBMs很多年了,主要是MySQL

现在,在MySQL中,我有一个数据库,其中包含大约10000个食物项目(大约再添加15000个),这些项目链接到属性和营养素。就我的研究而言,这似乎是NoSQL的一个很好的用途,但有一部分让我觉得可能不是

据我所知,NoSQL中绝对没有连接(非常高兴这么简单),但现在我们有几个食物项目有些相同,它们都将引用一个,例如:

Tomatoes, Raw
Tomatoes, Canned
Tomatoes, Cooked
我要做的是让它们都引用主要对象“生西红柿”或“西红柿”,但它们都包含自己的属性和营养成分,都是自己的“食物”

在RDBM中,这很简单,只需将一个
primary\u item\u id
字段添加到
item
表中并引用主项即可

这在MongoDB中是可能的,还是我应该坚持使用MySQL


-Kerry

您可以在MongoDB中使用相同的东西,即西红柿可以是主要项目,比如说_id=1,这些项目的父id为1。该系列可记录为:

{{1,“西红柿”,null},{2,“西红柿,生的”,1},{3,“西红柿,罐装的”,1},{4,“西红柿,熟的”,1}


请注意,出于查询目的,您可以将main项中的parentid保持为null(正如我在上面所做的),或者如果不需要该列,您也可以删除该列(它的工作原理是MongoDB是无模式的。)

MongoDB中的所有内容都是无模式的,因此您可以做任何您想做的事情。您的分析应该围绕您感兴趣的查询进行。我需要能够按主项查找相关项。我需要创建自己的ID和字段吗?是否有自动增量?从这里开始:所有文档必须具有唯一的
\u id
。如果您不提供,它将自动创建(它是MongoDB中的
ObjectId
)。不,没有“自动增量”字段,但在某些情况下可以通过一些方法模拟该功能)。