Fre*_*iot 9 javascript mongodb node.js dbref
我使用带有nodejs REST服务的MongoDB,它暴露了我存储在里面的数据.我有一个关于如何查询使用$ ref的数据的问题.
以下是Object的示例,其中包含对其他对象(详细信息)的引用:
{
"_id" : ObjectId("5962c7b53b6a02100a000085"),
"Title" : "test",
"detail" : {
"$ref" : "ObjDetail",
"$id" : ObjectId("5270c7b11f6a02100a000001")
},
"foo" : bar
}
Run Code Online (Sandbox Code Playgroud)
实际上,使用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){
...
});
});
Run Code Online (Sandbox Code Playgroud)
实际上我做了2个查询,得到了2个对象.这是一种"懒惰的装载"(不完全是,几乎)
我的问题很简单:是否可以在一个查询中检索整个对象图?
谢谢
不,你不能.
要解析DBRefs,您的应用程序必须执行其他查询以返回引用的文档.许多驱动程序都有辅助方法,可以自动形成DBRef的查询.驱动程序不会自动将DBRef解析为文档.
来自MongoDB文档http://docs.mongodb.org/manual/reference/database-references/.
小智 2
Vladimir 的回答仍然无效,因为 db.dereference 方法已从 MongoDB Nodejs API 中删除:
https://www.mongodb.com/blog/post/introducing-nodejs-mongodb-20-driver
数据库实例对象已被简化。我们删除了以下方法:
由于服务器中不推荐使用数据库引用而导致 db.dereference
归档时间: |
|
查看次数: |
13605 次 |
最近记录: |