2015-11-19 60 views
0

我使用節點模塊「的MongoDB」剛開始用的模式架構了。我閱讀了mongodb模塊的文檔,發現我無法在文檔中存儲對另一個文檔的引用。我想實現類似如下:節點JS MongoDB的模塊嵌入文檔

DocumentA 
{ 
_id: ObjectID(123456789), 
fieldA1: "test", 
fieldA2: "test", 
DocumentB: <ObjectId> 
} 

DocumentB 
{ 
_id: ObjectID(09876543), 
fieldB1: "test2", 
fieldB2: "test2" 
} 

我想通過對象ID(123456789)查詢文獻展,並取DocumentB,這樣我可以訪問值,如果「fieldB2」 &「fieldB1」。 這是可能做的節點js mongodb?如果是,那麼請給我一些知識或給我另一種解決方案(比如,是否查詢兩次獲取內部物體好嗎?)

回答

2

Mongo支持references的概念,但它們是非常弱的參考。對於你的參考可能沒有限制,所以它可能是完全無效的。

我認爲有2個概念,你缺少:

  1. 蒙戈不具備的「連接」的概念。它只是不在他們的範例中。
  2. 相反蒙戈有利於嵌入文檔。所以你的情況,而不是有2個文件,你可以有

DocumentA 
{ 
_id: ObjectID(123456789), 
fieldA1: "test", 
fieldA2: "test", 
DocumentB: { 
    fieldB1: "test2", 
    fieldB2: "test2" 
    } 
} 

那麼你可以查詢文檔A和做任何你想要的組合學邏輯與文檔B,因爲它與文件右有

+0

謝謝你的回覆。這個答案幫助了我,對我來說很合理。 –