0
我有下面的代碼,它使用Mongoose和Bluebird作爲貓鼬的承諾提供程序。我試圖實現的是在Promise.all()
解決時返回的貓鼬文檔數組的每個元素上調用Model#save
,如下所示。這段代碼不起作用,我的猜測是,當我打電話給doc.save()
時,我沒有在一個被認爲是貓鼬模型實例的對象上做這件事。我怎樣才能解決這個問題?Mongoose:如何調用模型#保存由解析的Promise.all()返回的文檔?
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();
});
});
@JohnnyHK所以,忽略了函數的第一行提供的結果.map(),doc.save()調用應該工作? –