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