試圖讓我的手蒙上MongoDB,來自關係數據庫背景。MongoDB更新範例
我相信MongoDB的一個主要概念是儘可能多地保持數據。
可以想象我創建具有產品和類別的應用程序,我存儲產品是這樣的:
產品集合
{
"_id": "30671", //main item ID
"department": "Shoes",
"category": "Shoes/Women/Pumps",
"brand": "Calvin Klein",
"thumbnail": "http://cdn.../pump.jpg",
"title": "Evening Platform Pumps",
"description": "Perfect for a casual night out or a formal event.",
"style": "Designer",
…
}
分類收集
{
"_id": "12356",
"name": "Shoes"
…
}
如果我更新類別名稱,我是否需要運行一個巨大的更新com是否需要更新所有產品?或者在這種情況下,最好將產品的類別標識存儲爲產品而不是名稱(就像我們在關係數據庫中那樣)?
感謝
有沒有這樣的事情 「的NoSQL」。這只是一個集體名詞。你要麼使用MongoDB,要麼使用Firebase,要麼使用Cassandra。通常在RDBMS領域,所有的事情都會說同一個SQL。與其他人打交道時,**沒有共同語言**。所以你可以停止用「NoSQL」來引用它,因爲它實際上並不意味着什麼。只有期望的目標系統的語法纔是最重要的。 –
下一點。 Whist你**可以**將數據存儲在多個集合中,你應該問的事情是*「我真的需要**嗎?」*。當答案是** NO **時,那麼當你開始查看基於「非關係型」的數據庫解決方案時。當它是** YES **時,關係模型會更好,除非域邏輯的重要部分更適合其他引擎,並且使用不同的引擎是不可能的。所以底線是你的「問題在這裏」太廣泛了。這不是關於**最好的**,而是關於**最適合你的**。 –
@NeilLunn,我用一個簡單的例子(cats/prods)描述了我的問題。同樣的概念很容易適用於其他情況。所以對我來說這不是問題,我希望得到更多MongoDB經驗豐富的人士的意見,在這些情況下,您可以在多個地方獲得相同的信息。我認爲這就是Stackoverflow的意義,分享知識。 – AndreFeijo