2012-08-04 63 views
2

有沒有辦法通過代碼對Spring進行說明我在MongoDB中有一個表/集合例如Person。你會怎麼說它與另一個表有一對多的關係?通過Spring可以在MongoDB中實現嗎?MongoDB關係

+0

您將如何處理這種關係? – 2012-08-04 09:49:40

+0

我想知道這是否可能。由於MongoDB是NoSQL數據庫。例如,員工有很多車。這實際上可以做到嗎? – user1348855 2012-08-04 09:53:06

+1

我認爲NoSQL的全部目的不是像關係(外鍵) – 2012-08-04 10:42:20

回答

2

MongoDB可能與其他數據庫和集合具有「關係」,這些稱爲手動引用和DBRefs。請查看文檔for database references。但是,您應該謹慎使用這些設置,因爲與使用單個集合相比,它們幾乎總是表現不佳。您的應用程序或驅動程序將需要查詢兩次數據 - 一次在原始集合中,一次在另一個集合中解析引用。

對於那些來自關係模型的人來說,嘗試使用DBRefs來模擬MongoDB中的連接是一個常見的錯誤。在你給的例子中,一個一對多的關係,很可能是更好的模型在一個單一的集合與嵌入,如下所示:

{ 
    "_id" : ObjectId(), 
    "Name" : "Bob", 
    "Cars" : { 
     "CarName1" : "FirstCar", 
     "CarName2" : "SecondCar" 
    } 
} 

您可以檢查出的文檔上Schema Design瞭解更多信息

2

MongoDb不提供任何支持多個集合之間的關係。它不同於數據庫的sql方法。 No-sql支持由模式設計本身維護的邏輯關係。它的基本目標是減少對部分文檔的依賴,並加快進程。對於演示示例,您可以訪問mongodb-useful-basics