2015-04-04 52 views
0

我想使用nodejs/mongoose在mongoDB中獲取引用。MongoDB/Mongoose/nodejs中的引用 - 並行化

在我讀了有兩個選項的文檔:Manual References or DBRefs.

由於他們的狀態,其建議使用手冊參考,我決定成立以下列方式的模式:

var schema = new mongoose.Schema({ 
    name : String, 
    reference : mongoose.Schema.ObjectId 
}); 
  1. 問題:如果我從我的集合中檢索這些對象的數組,我該如何以良好的練習方式解決這些引用?

我的想法是使用Nimble並行化所需的請求。我想做像

flow.parallel(functions, function() { 
    return result; 
}); 

一些地方我填動態功能

var functions = [] 

,我再傳給靈活的陣列。 (這種SO問題的種類:Javascript Array of Functions

  1. 問題:這是否實用?一系列的功能似乎不是真正的方式去找我。但我沒有看到任何替代方案,因爲靈活的需要用靜態數量的函數來調用。
+0

希望這個鏈接可以幫助你.. http://stackoverflow.com/questions/28712248/difference-between-mongodb-and-mongoose – 2015-04-04 11:39:07

+1

爲什麼不將其作爲參考【人口】(HTTP貓鼬的支持: //mongoosejs.com/docs/populate.html)? – JohnnyHK 2015-04-04 12:42:23

+0

@JohnnyHK太棒了,我不知道這一點。謝謝 – Stefan 2015-04-04 13:23:03

回答

1

您可以使用Mongoose的支持引用population來有效地跟蹤引用。

var schema = new mongoose.Schema({ 
    name : String, 
    reference : { type: mongoose.Schema.ObjectId, ref: 'OtherModel' } 
}); 
var MyModel = mongoose.model('MyModel', schema); 
MyModel.find().populate('reference').exec(function(err, docs) {...}); 

在上面的例子中,每個docs元件的reference字段獲取與引用文檔填充。