如何从saveAsync返回一个Mongoose对象?

我已经promubified与蓝鸟mongoose – 似乎工作正常,除了由saveAsync()返回的文档只是普通的对象,缺乏方法/虚拟。

 order.saveAsync().then(function(order) { order.save(); // errors with object has no method 'save' 

我使用“保存”作为示例,但没有内置方法或我的自定义方法似乎可用。

我怎样才能得到一个从saveAsync返回的Mongoose对象?

保存callback被调用多个参数 – 对象和numberAffected 。 因此,承诺是由一个数组[object, numberAffected] 。 (这个变化在3.0)

所以你可以解引用数组(手动或获取),传播或:

  order.saveAsync().then(function(result) { var order = result[0]; return order._id; }); 

使用get

  order.saveAsync().get(0).then(function(order) { return order._id; }); 

使用传播

  order.saveAsync().spread(function(order, numberAffected) { return order._id; });