我來自MySQL背景,我正在學習MongoDB。我有產品文檔,並且每個產品文檔都有一個類別。現在我讓用戶手動選擇類別,但我想要的是顯示一個包含我已定義的所有類別的下拉菜單。
從分類MySQL表格到MongoDB設計
在MySQL中我將創建一個類別表並獲得所有這些並把它們展示給用戶。我將如何將這些類別存儲在MongoDB中?
我來自MySQL背景,我正在學習MongoDB。我有產品文檔,並且每個產品文檔都有一個類別。現在我讓用戶手動選擇類別,但我想要的是顯示一個包含我已定義的所有類別的下拉菜單。
從分類MySQL表格到MongoDB設計
在MySQL中我將創建一個類別表並獲得所有這些並把它們展示給用戶。我將如何將這些類別存儲在MongoDB中?
在這種情況下,我仍然有一個類別集合,並有一個指向其他集合的ObjectId指針,這樣您就可以擁有所有類別的單個主列表,但仍然在文檔中包含嵌入類別,以便您可以基於此執行搜索。你不會有完整的關係,但你可以跟蹤一個地方的類別。
IMO,mongo的哲學並不意味着擺脫所有關係,而只是爲了讓它們在合理的地方使用。
感謝您的快速回答。我想過要有一個集合,但是..該集合的每個文檔都非常簡單:id,category_name。我會爲此創建一個集合嗎? – 2012-03-18 02:52:20
隨着應用程序的增長,您可以隨時添加額外的元數據,例如創建時間,說明,您可以使用該集合來描述子類別。 – 2012-03-18 03:01:09
根據您的使用情況,您可以有一個類別集合,用戶可以從中選擇類別,並將類別簡單地存儲爲產品文檔中的字符串數組。這樣可以避免在想要顯示產品或基於類別查找產品時加入數據。 – michaeltwofish 2012-03-18 23:23:34
類別列表是否爲動態?你想添加更多的動態? – 2012-03-18 02:57:47
它應該是動態的。我希望能夠在將來添加更多類別。 – 2012-03-18 03:06:01