2012-10-15 59 views
0

有沒有辦法找出爲什麼查詢不會返回monogodb結果的原因?如何找出查詢返回沒有結果的原因?

假設我們有一個集合存儲的員工,我想取名爲X的任何員工,解決Y和Z.年齡

我會寫一些類似查詢:

BasicDBObject query = new BasicDBObject(); 

query.put("name","X"); query.put("address","Y"); query.put("age","z"); 

如果這查詢返回null,我怎麼知道它是否是因爲沒有名字爲X的員工,或沒有地址爲Y的員工,或沒有年齡爲z的員工?還是有辦法?

回答

1

開箱無法實現。您必須執行多個查詢或使用第一個條件創建一個查詢,然後遍歷應用程序代碼中的集合,以確定其他條件是否完全匹配

+0

。試試看是否可以通過'mongo' shell找到相同的文檔 –

+0

好吧,但是,如果要加載的數據量非常大而無法在內存中處理,會發生什麼情況? – Adelin

+0

您可以使用服務器端執行,使用JavaScript編寫自己的搜索並從您的應用程序代碼中調用mongodb函數。你的函數可以返回不匹配的條件或找到的對象。 http://www.mongodb.org/display/DOCS/Server-side+Code+Execution – Anton

1

它不返回任何文檔,因爲沒有文檔符合您的條件。如果你真的想知道哪一個,然後在客戶端上做3個獨立的查詢和過濾/合併結果。