2013-08-25 27 views
0

我對數據庫的NoSQL方面非常陌生,但我多年來一直在使用RDBM,主要是MySQL。MongoDB(NoSQL) - 文檔可以引用/鏈接到它自己嗎?

現在,在MySQL中,我有一個數據庫可容納大約10,000個食物項目(將添加另外15,000個),其中包含項目,鏈接到屬性和營養素。就我的研究結果而言,這對於NoSQL來說似乎非常有用,但其中一部分讓我覺得它可能不是。

從我所知道的NoSQL中絕對沒有任何聯接(對於簡單性非常滿意),但現在我們有幾個食物項目有些相同,並且它們都將引用一個,例如:

Tomatoes, Raw 
Tomatoes, Canned 
Tomatoes, Cooked 

我所要做的是讓所有的人主要參考對象,「西紅柿,生」或只是「西紅柿」,但它們都包含自己的一組屬性和營養素,而且是理所當然的擁有「食品」。

在RDBM中,這很簡單,只需在item表中添加primary_item_id字段並引用主項。

這是可能在MongoDB,或者我應該堅持與MySQL?

-Kerry

+0

MongoDB中的一切都是無模式的,所以你可以做你想做的。你的分析應該圍繞你感興趣的查詢進行。 – WiredPrairie

+0

我需要能夠通過主項目查找相關項目。我是否需要創建自己的ID和他們自己的字段?是否有自動增量? –

+1

從這裏開始:http://docs.mongodb.org/manual/core/data-modeling/所有文檔都必須有一個唯一的'_id'。如果你不提供一個,它是自動創建的(它是MongoDB中的ObjectId)。不,沒有自動增量字段,但有些方法可以在某些情況下模擬功能)。 – WiredPrairie

回答

1

您可以使用同樣的事情在MongoDB中即西紅柿可與主項說_id = 1,這些項目將有父ID爲1的集合可記爲:

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

注意,你可以保持parentId的主項爲空查詢的目的(如我上面那樣),或者你可以刪除列,如果你不需要它(和它的作品如MongoDB是免費的模式。)

相關問題