我使用MongoDB和一個nodejs REST服務來暴露存儲在裏面的數據。我有一個關於如何查詢使用$ ref的數據的問題。
這裏是包含花葯集合中的引用到另一個對象(細節)的對象的樣品:
{
"_id" : ObjectId("5962c7b53b6a02100a000085"),
"Title" : "test",
"detail" : {
"$ref" : "ObjDetail",
"$id" : ObjectId("5270c7b11f6a02100a000001")
},
"foo" : bar
}
其實用的Node.js和MongoDB模塊,i執行以下操作:
db.collection("Obj").findOne({"_id" : new ObjectID("5962c7b53b6a02100a000085"},
function(err, item) {
db.collection(item.$ref).findOne({"_id" : item.$id}, function(err,subItem){
...
});
});
事實上,我做了2個查詢,並得到2個對象。這是一種「延遲加載」(不完全,但幾乎)
我的問題很簡單:是否有可能在一個查詢中檢索整個對象圖?
謝謝
而且據我所知節點MongoDB的原生驅動程序沒有辦法解決這些爲您準備。 – Brett