我可以对我已做.populate()
的猫鼬模型实例.find()
吗?
所以这就是学校的例子:
Model.findById(id).populate("bar").exec(function(err, document){
doSth(document);
});
但我想在中间件中单独执行.find()
,并在需要时传递结果以阻止它.populate()
。是这样的:
var foo;
Model.findById(id, function(err, document){
foo = document;
});
foo.populate("bar");
doSth(foo);
或:
foo.populate("bar").exec(function(err, document){
doSth(document);
});
有可能吗?
答案 0 :(得分:1)
是的,你可以这样做
foo.populate('bar', function(err) {
console.log(foo.bar);
});
我找到了这个解决方案here。如果它对你有帮助,请告诉我。
答案 1 :(得分:0)
确实有多种方法: https://mongoosejs.com/docs/api.html#document_Document-populate
如果您使用的是异步/等待,请不要忘记添加.execPopulate()
,例如:
let foo = await Foo.findOne({}).exec()
await foo.populate('bar').execPopulate()