Я использую async eachSeries
и обновляю документ, когда он присутствует. Вот пример кода.
let a = [
{ user_name: "foo" }
];
async.eachSeries(a, (doc, done) => {
Foo.findOne(doc).lean(true).exec((err, doc) => {
if (err) return done(err);
Foo.findOneAndUpdate(a, {
user_last: "bar"
}, {
upsert: true,
new: true
},
(err, doc) => {
if (err) return done(err);
return done(doc);
});
});
}, (err) => {
console.log(completed);
});
иногда даже массив a
имеет один элемент, функция findOneAndUpdate
выполняется дважды за одну итерацию. Я использую node v6.10
и mongoose
. Это не происходит все время.
Кто-нибудь сталкивался с подобной проблемой.