Nodejs + mongodb:如何查询 $ref 字段?

2024-05-07

我将 MongoDB 与 Nodejs REST 服务一起使用,该服务公开了存储在其中的数据。我有一个关于如何查询使用 $ref 的数据的问题。

这是一个对象的示例,其中包含对花药集合中另一个对象(详细信息)的引用:

{
    "_id" : ObjectId("5962c7b53b6a02100a000085"),
    "Title" : "test",
    "detail" : {
        "$ref" : "ObjDetail",
        "$id" : ObjectId("5270c7b11f6a02100a000001")
    },
    "foo" : bar
}

实际上,使用 Node.js 和 mongodb 模块,我执行以下操作:

db.collection("Obj").findOne({"_id" : new ObjectID("5962c7b53b6a02100a000085"},
function(err, item) {
    db.collection(item.$ref).findOne({"_id" : item.$id}, function(err,subItem){
        ...
    });
});

事实上,我进行了 2 次查询,并得到了 2 个对象。这是一种“延迟加载”(不完全是但几乎)

我的问题很简单:是否可以在一个查询中检索整个对象图?

谢谢


不,你不能。

要解析 DBRef,您的应用程序必须执行其他查询以返回引用的文档。许多驱动程序都有辅助方法,可以自动形成 DBRef 的查询。驱动程序不会自动将 DBRef 解析为文档。

来自 MongoDB 文档http://docs.mongodb.org/manual/reference/database-references/ http://docs.mongodb.org/manual/reference/database-references/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nodejs + mongodb:如何查询 $ref 字段? 的相关文章

随机推荐