繁体   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