[英]mongodb java driver. How to return object by reference
例如,我有兩個集合“動物”和“食物”。 在“動物”收藏中有一種野外食品,是對“食物”收藏(未嵌入)的引用。 我正在使用mongo 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);
它返回對象“食物”的名稱和ID。 那么,獲取對象“食物”字段的正確方法是什么?
簡短的答案是,您無法在MongoDB中自動執行此類操作。 它沒有“聯接”的概念。 您只需要進行一個單獨的查詢。
若要解析DBRef,您的應用程序必須執行其他查詢以返回引用的文檔。 許多驅動程序都有幫助程序方法,這些方法會自動形成DBRef的查詢。 驅動程序[1]不會自動將DBRef解析為文檔。 DBRef提供了一種通用的格式和類型來表示文檔之間的關系。 如果數據庫必須與多個框架和工具進行交互,則DBRef格式還提供了表示文檔之間鏈接的通用語義。
通常,最好將內容存儲為嵌入式文檔,特別是如果您必須經常“手動加入”這些文檔時。 僅取決於您的數據以及查詢方式。 因人而異
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.