2015-04-04 51 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字段获取与引用文档填充。