Mongoose 将带有承诺的子文档填充到实例方法中

Mongoose 将带有承诺的子文档填充到实例方法中,mongoose,Mongoose,我需要将子文档填充到一个实例方法中,并在测试了不同的模式后使其与回调一起工作。但我想知道在这种情况下如何使用承诺,如果我们不能(也许我不应该满足这种需求)是否有理由 populate()方法返回原始文档(包含任何更改) 以下是我想做的: MyModel.methods.myMethod = function () { return this.populate({ model: 'User', path: 'rank.user'}) .then(function() { //

我需要将子文档填充到一个实例方法中,并在测试了不同的模式后使其与回调一起工作。但我想知道在这种情况下如何使用承诺,如果我们不能(也许我不应该满足这种需求)是否有理由

populate()方法返回原始文档(包含任何更改)

以下是我想做的:

MyModel.methods.myMethod = function () {
    return this.populate({ model: 'User', path: 'rank.user'})
      .then(function() { // TypeError: promise.then is not a function
        // Expected to be able to do things here...
      });   
};
这是有效的:

MyModel.methods.myMethod = function () {
    return this.populate({ model: 'User', path: 'rank.user'}, function(err, populatedDucument) {
       // Works fine...
     });    
};
你知道如何在这里充满承诺吗? 顺便说一下,我使用的是v4.1.0。

在没有回调的情况下调用模型实例调用,以执行填充并返回承诺

MyModel.methods.myMethod=函数(){
返回此.populate({model:'User',path:'rank.User'})
.execPopulate()
.然后(函数(){
// ...
});   
};

工作正常!我在文档中没有注意到这个方法,谢谢!