Promise.all(items.map(item => {
return Model.findOneAndUpdate({
_id: item._id,
}, {
$set: item
}, {
upsert: true
})
}))
根据mongoose文档findOneAndUpdate方法应该返回一个query对象,query对象在执行exec方法之后会返回一个promise对象,为什么上面这段代码没有执行exec也可以正确插入呢?
输出
findOneAndUpdate不传回调函数,返回的是个promise对象,items.map方法,获取到的是一个promise数组.
所以上面代码可以正常执行.
试试就知道了