2014-10-29 75 views
1

例如,我有兩個集合「動物」和「食物」。 在收集「動物」中有一種野外食物,它是指收集「食物」(未嵌入)。 即時通訊使用蒙戈Java驅動程序:mongodb java驅動程序。如何通過引用返回對象

DBCollection collection = db.getCollection("animals"); 
    DBObject fields = new BasicDBObject("name", 1); 
    fields.put("food", 1); 
    fields.put("_id", 0); 
    DBObject project = new BasicDBObject("$project", fields); 
    collection.aggregate(project); 

它返回名稱和對象「食品」標識。 那麼,如何獲得對象「食物」的正確方法?

+0

我不確定你在這裏做什麼。試着再解釋一遍。謝謝 – MZaragoza 2014-10-29 23:01:29

回答

0

簡短的回答是,你不能在MongoDB中自動完成那種事情。它沒有「連接」的概念。你只需要做一個單獨的查詢。

這部分documentation on Database Reference應該有助於澄清。

要解決DBRefs,您的應用程序必須執行其他查詢才能返回引用的文檔。許多驅動程序都有助手方法,它們自動爲DBRef構成查詢。驅動程序[1]不會自動將DBRefs解析爲文檔。 DBRefs提供了一種通用的格式和類型來表示文檔之間的關係。如果您的數據庫必須與多個框架和工具交互,則DBRef格式還提供了用於表示文檔間鏈接的常用語義。

很多時候,它最好將內容存儲爲嵌入式文檔,特別是如果您經常需要「手動加入」這些文檔。取決於您的數據以及您需要查詢的方式。 YMMV

+0

hm ..謝謝! – Alex 2014-10-30 11:01:30

相關問題