我正在使用带有 nodejs REST 服务的 MongoDB,该服务公开了我存储在其中的数据。我有一个关于如何查询使用 $ref 的数据的问题。
这是一个 Object 的示例,其中包含对 anther 集合中另一个对象(详细信息)的引用:
{
"_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 个对象。这是一种“延迟加载”(不完全是但几乎)
我的问题很简单:是否可以在一个查询中检索整个对象图?
谢谢