0
假設我有MongoDB的兩個集合A和B,其中,A具有參考B的列表中的屬性:查找文檔MongoDB中有一組鍵
答:
{
_id: ObjectId
name : String
itemB : [ObjectId]
}
B:
{
_id: ObjectId
data : String
info : [String]
}
什麼會更好地得到所有B中的「數據」對於一個給定答:
一)讀出來自陣列itemB,做({_id:x})爲每個元素x
b)從A讀取數組itemB,陣列
或者還有更好的方法來建模? 將它分成A和B的原因是B.info可以有多個項目或B.data可以很長。這意味着將B嵌入到A可能會導致性能問題,因爲最大文檔大小。
我看到了這個動機。但是,就我而言,B不與單個A關聯,它可能是1:n或n:m關係。相反,A1有一個Bs列表,而A2有另一個Bs列表。在你的情況下,B也會被關聯到單個A? – Se7enDays
是的,在我的例子中它的確如此。但是itemA也可以很容易地成爲一個數組,查詢仍然可以工作。 – Derick
我已經添加到我的答案。 – Derick