【发布时间】:2016-07-26 18:31:24
【问题描述】:
首先,我使用mongodb-promise 作为 MongoClient 的包装器。
我需要从符合特定条件的“人”集合中获取所有记录,然后更新每个记录。
为此,我有这段代码可以找到所有人:
return db.collection('people')
.then( (collection) => {
// Store reference to collection for future use
peopleCollection = collection;
return collection.find({a:1})
})
然后调用它来更新每条记录:
.then( (people) => {
// Process each people
return people.each( (person) => {
person.b = 2;
// Where peopleCollection is a reference to my collection
return peopleCollection.update({_id: person._id}, person)
})
})
然后我添加另一个承诺链来获取所有 b != 2 的人,我找到了许多记录并计算了它们。但是当我重复执行这个脚本时,计数会减少,这意味着当承诺已经解决时,mongo 仍在更新其他记录。我在这里错过了什么?
【问题讨论】: