簡體   English   中英

mongodb Java驅動程序。 如何通過引用返回對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM