How to return a Mongoose object from saveAsync?

I promised Mongoose with Bluebird - everything works fine, except that the documents returned saveAsync()are just regular objects and have no methods / virtual machines.

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

I use "save" as an example, but no built-in method or my custom methods are available.

How can I get the Mongoose object returned from saveAsync?

+4
source share
1 answer

The save callback is called with several arguments - the object and numberAffected. Therefore, the promise is fulfilled using an array [object, numberAffected]. (this changes in version 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;
 });
+4

All Articles