如何从 saveAsync 返回一个 Mongoose 对象?
Posted
技术标签:
【中文标题】如何从 saveAsync 返回一个 Mongoose 对象?【英文标题】:How to return a Mongoose object from saveAsync? 【发布时间】:2015-04-14 04:34:42 【问题描述】:我已经向 Mongoose 承诺了 Bluebird - 除了 saveAsync()
返回的文档只是普通对象并且缺少方法/虚拟之外,一切似乎都可以正常工作。
order.saveAsync().then(function(order)
order.save(); // errors with object has no method 'save'
我以“保存”为例,但似乎没有内置方法或我的自定义方法可用。
如何获取从saveAsync
返回的 Mongoose 对象?
【问题讨论】:
这行得通吗?var orderObj= new Order(order); orderObj.save();
【参考方案1】:
使用多个参数调用保存回调 - 对象和 numberAffected
。因此,承诺通过数组[object, numberAffected]
实现。 (这在 3.0 中有所改变)
因此您可以取消引用数组(手动或获取)、展开或:
order.saveAsync().then(function(result)
var order = result[0];
return order._id;
);
使用获取
order.saveAsync().get(0).then(function(order)
return order._id;
);
使用传播
order.saveAsync().spread(function(order, numberAffected)
return order._id;
);
【讨论】:
以上是关于如何从 saveAsync 返回一个 Mongoose 对象?的主要内容,如果未能解决你的问题,请参考以下文章