我想使用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
字段都会填充引用的文档。
关于javascript - MongoDB/Mongoose/nodejs 中的引用资料 - 并行化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29445740/