Mongoose:如何在已解析的 Promise.all() 返回的文档上调用 Model#save?

Mongoose: How to call Model#save on docs returned by resolved Promise.all()?

我有以下代码,它使用猫鼬和蓝鸟作为猫鼬的承诺提供者。我想要实现的是在 Promise.all() 解析时对返回的猫鼬文档数组的每个元素调用 Model#save,如下所示。这段代码不起作用,我的猜测是,当我调用 doc.save() 时,我并不是在识别为 Mongoose 模型实例的对象上执行此操作。我该如何解决这个问题?

promises = [
  User.findById(userId).exec(),
  Post.findById(postId).exec()
];

var promisedDocs = Promise.all(promises)  // Should resolve to [{ user: {} }, {post: {} }]
  .then(function(results) {
    results.map(function(result) {
      // Extract the first property of object in array element.
      var doc = result[Object.keys(result)[0]];
      doc.someArrayProp.push(someValue);
      doc.save();
   });
});

Promise.all 返回的承诺将解析为 [user, post],因此您可以直接在 results.map 回调中操作文档:

var promisedDocs = Promise.all(promises)  // Resolves to [user, post]
  .then(function(results) {
    results.map(function(doc) {
      doc.someArrayProp.push(someValue);
      doc.save();
   });
});