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
});
- 问题:如果我从我的集合中检索这些对象的数组,我该如何以良好的实践方式解析引用?
我的想法是使用 Nimble 并并行处理必要的请求。我想做类似
的事情
flow.parallel(functions, function() {
return result;
});
我在其中动态填充函数数组
var functions = []
然后我将其传递给 nimble。
(类似这样的问题:Javascript Array of Functions)
- 问:这个实用吗?函数数组似乎不太适合我。但我看不到任何替代方案,因为需要使用静态数量的函数调用 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
字段都填充了引用的文档。
我想使用 nodejs/mongoose 在 mongoDB 中获取引用。
在我读到的文档中,有两个选项:Manual References or DBRefs.
鉴于他们声明,建议使用手动参考,我决定按以下方式设置架构:
var schema = new mongoose.Schema({
name : String,
reference : mongoose.Schema.ObjectId
});
- 问题:如果我从我的集合中检索这些对象的数组,我该如何以良好的实践方式解析引用?
我的想法是使用 Nimble 并并行处理必要的请求。我想做类似
的事情flow.parallel(functions, function() {
return result;
});
我在其中动态填充函数数组
var functions = []
然后我将其传递给 nimble。 (类似这样的问题:Javascript Array of Functions)
- 问:这个实用吗?函数数组似乎不太适合我。但我看不到任何替代方案,因为需要使用静态数量的函数调用 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
字段都填充了引用的文档。