MongoDB/Mongoose/nodejs 中的引用 - 并行化

References in MongoDB / Mongoose / nodejs - parallelization

我想使用 nodejs/mongoose 在 mongoDB 中获取引用。

在我读到的文档中,有两个选项: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 = []

然后我将其传递给 nimble。 (类似这样的问题:Javascript Array of Functions

  1. 问:这个实用吗?函数数组似乎不太适合我。但我看不到任何替代方案,因为需要使用静态数量的函数调用 nimble。

您可以使用 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 字段都填充了引用的文档。