2012-05-17 56 views
0

假設我有一個mongodb集合A和B. 雖然A有一個B的外鍵叫做b_id。mongodb中的關係條件

我怎樣做MongoDB中(甚至紅寶石越好)以下查詢:

select * from A where b_id not in (select id from B where <some_condition>); 

回答

1

的MongoDB沒有做關係查詢(它不是所謂的NoSQL 原因) - 但有是其他方式,你可以做到這一點。

  1. 在蒙戈客戶端運行的兩步查詢,第一獲取內部陣列,然後使用$nin operator

    變種IDS = db.B.find(條件); db.A.find({b_id:{$ nin:ids}});

  2. 如果您仍處於設計階段,您可以考慮爲您的模式使用嵌套文檔。例如,如果有許多,則可以添加的陣列以每作爲屬性。 (請記住,雖然,有一個limit to document size in MongoDB,所以這不是一個很好的解決方案,如果在任何給定的一個數量可能會非常大。)

+0

謝謝。我不能嵌入它應該保持獨立的對象。但我會嘗試第一個選項。 –