2015-10-05 38 views
0

我有兩個集合:Networks和UserNetworks。當ID在使用C#和MongoDB的另一個集合的文檔中時,通過標識獲取

在userNetworks集合中,我有一個userId作爲Id字段和屬於它的網絡ID數組。

我想運行一個查詢,它返回來自Networks集合的所有網絡,其中networkId位於給定UserId的網絡陣列中。

我真的想避免兩個查詢,一個是獲取網絡ID列表,另一個是獲取網絡本身。我找不到合適的答案。

回答

1

你在找什麼叫做連接,而MongoDB不支持連接。您無法在單個查詢中執行您想要的操作。

您可以通過每次瀏覽一個集合中的每個文檔並查詢第二個集合來執行「客戶端連接」。或者,您可以將一個(或兩個)集合加載到客戶端,而不是往返。

+0

它沒有加入,加入是從2個收藏中檢索數據並顯示它,我只是想給一個搜索源 –

+0

@OriRefael如果你顯示或不顯示它並不重要。加入是在一個查詢中組合多個表(或集合)。 – i3arnon

+0

所以,只是要清楚。唯一的選擇我有一個單一的用戶ID是取其網絡查詢,然後在一個新的查詢,我應該是所有網絡networkId在第一個查詢結果? –

相關問題