我是一名java程序員,我想在我的項目中使用MongoDB。我知道MongoDB是一個文檔數據庫,但有沒有辦法在這個數據庫中存儲更多的記錄字段?我可以在MongoDB中存儲關係數據庫結構嗎
例如我有一個表有4個屬性(即列)名稱地址年齡和dob,所以我可以使用或轉換此結構以適應MongoDB?
我是一名java程序員,我想在我的項目中使用MongoDB。我知道MongoDB是一個文檔數據庫,但有沒有辦法在這個數據庫中存儲更多的記錄字段?我可以在MongoDB中存儲關係數據庫結構嗎
例如我有一個表有4個屬性(即列)名稱地址年齡和dob,所以我可以使用或轉換此結構以適應MongoDB?
當然。
MongoDB是一個基於文檔的數據庫管理系統。如果您熟悉JSON
格式,則Mongo以非常相似的方式存儲數據。例如,在一個蒙戈數據庫中的樣本文件可以是這樣的:
Person {
Name:
{
First : "John"
Last : "Smith"
}
Address :
{
City : "Chicago"
State : "Illinois"
Street : "30 S. Michigan Avenue"
}
}
正如你可以看到蒙戈支持嵌套的領域,所以某個領域可以包含一個或多個屬性。它本身不是關鍵/值,因爲它可以無限地嵌套文檔。但是,請注意,並非集合中的所有文檔都必須具有相同的結構。這是Mongo最大的優勢,但如果你不小心的話,它可以扭轉並咬你。
實際上,MongoDB不是傳統的鍵/值數據庫,而是文檔數據庫。文檔是一個JSON對象,它可以包含任意數量的字段,甚至嵌套的文檔。所以是的,您可以輕鬆地爲每條記錄存儲多個字段。
只需添加到正確的(+1)的答案與前兩次海報...
有「關係數據庫結構」和存儲附加屬性之間的差異。關係意味着你正在模擬數據庫中事物之間的關係,比如客戶和每個客戶擁有的訂單。
MongoDB允許您存儲具有許多屬性的文檔。它不提供很多支持文件之間的管理關係。
MongoDB允許您使用官方驅動程序(以及許多社區提供的驅動程序)知道如何解釋以查找所引用的文檔的[數據庫引用](http://www.mongodb.org/display/DOCS/Database+References) 。但是,數據庫本身不處理DBRefs(即不加入JOIN)。 – dcrosta
**主持人備註** _此問題下的評論已被刪除,因爲對話退化爲比信號更多的噪音。請保持評論禮貌,建設性和話題._ –