1. 程式人生 > >mongo中用巢狀結構優勢是什麼

mongo中用巢狀結構優勢是什麼

首先需要知道,MongoDB是NoSQL中的一種,是不直接支援Join的,這是NoSQL的一個特點,不需要直接支援Join,可以將橫向擴充套件以及效能做到更好。

但是這不等於說MongoDB不能做Join所做的事情,為了達到傳統資料庫join的功能,MongoDB中有2個思路:

  1. Embedding:透過Embedding子文件,達到One to Many的關聯關係;這就是您說的巢狀結構;

  2. Referencing:Referencing分為手工Referencing和自動Referencing;通常推薦是手工Referencing,通常是將需要關聯的文件的Object_id儲存在需要關聯的Collection中,也就是說需要關聯的Document的Object_id寫入時,分別寫入在兩個需要關聯的Collection裡面。

上述兩個思路,也正是MongoDB的Data Model的主要思路。

那麼上述2個思路在具體的運用的時候,怎麼區分開呢?

  1. 如果能夠Embedding的Sub Document,不需要單獨被查詢,那就直接Embedding;

  2. 如果這個Sub Document需要對外提供查詢,則單獨儲存為一個Collection,並使用Referencing與其他collecion關聯。

供參考。

Love MongoDB! Have Fun!

 引:https://segmentfault.com/q/1010000009109840