0

我对 DB 的 NoSQL 方面非常陌生,但多年来我一直在使用 RDBM,主要是 MySQL。

现在,在 MySQL 中,我有一个数据库,其中包含大约 10,000 种食品(即将添加另外 15,000 种),其中包含与属性和营养成分相关联的项目。就我的研究而言,这似乎是 NoSQL 的一个很好的用途,但有一部分让我认为它可能不是。

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

Tomatoes, Raw
Tomatoes, Canned
Tomatoes, Cooked

我要做的是让它们都引用主要对象,“西红柿,生”或只是“西红柿”,但它们都包含自己的一组属性和营养,并且理所当然地是它们自己的“食物”。

在 RDBM 中,这很简单,只需向表中添加一个primary_item_id字段item并引用主要项目。

这在 MongoDB 中是否可行,还是我应该坚持使用 MySQL?

-克里

4

1 回答 1

1

您可以在 MongoDB 中使用相同的东西,即西红柿可以是主项目,比如 _id=1,这些项目的父 ID 为 1。该集合可以记为:

{ { 1, "Tomatoes", null }, { 2, "Tomatoes, Raw", 1 }, { 3, "Tomatoes, Canned", 1 }, { 4, "Tomatoes, Cooked", 1 } }

请注意,您可以将主要项目中的 parentid 保留为 null 以进行查询(如我上面所做的那样),或者如果您不需要它,您可以删除该列(并且它的工作原理是 MongoDB 是无模式的。)

于 2013-08-25T17:18:37.053 回答