【发布时间】:2020-10-08 20:18:30
【问题描述】:
我正在使用getPeople() 从数据库中检索人员列表。一旦我以res 收到它们,我想准备将它们存储在我的本地 mongodb 如果它们不存在。有时res 中有重复的条目(对于一个id)。我的问题是它没有等待Person.create(pers) 完成,继续搜索这个id 是否已经在mongodb 中,找不到任何因为Person.create(pers) 仍在创建它并开始第二个Person.create(pers)..
this.getPeople()
.then(res => {
return Promise.all(res.map(pers => {
pers.birthday = df(pers.birthday, 'dd.mm.yyyy')
pers.pickedUp = false
console.log(pers.id)
return Person
.find({ id: pers.id })
.exec()
.then(found => {
if (found === undefined || found.length == 0)
return pers
})
.then(pers => {
return Person
.create(pers)
.then(console.log('created'))
.catch(err => console.log(err))
})
}))
}).catch(err => console.log(err))
我希望控制台输出是这样的:
940191
created
940191
created
相反,我得到了这个:
940191
940191
created
created
【问题讨论】:
标签: node.js arrays mongoose promise