Я выполняю массовую операцию обновления / вставки для нескольких тысяч документов одновременно из CSV.Я обновляю весь документ с $set
, и это в настоящее время работает нормально.
Если документ существует, я хочу сохранить одно поле, доступное только из БД, и у меня нет доступа к нему.Поэтому мне нужно извлечь это поле в .find()
, применить его к документу в памяти, а затем обновить документ с помощью $set
в update()
Я не могу применить логику между bulk.find()
и.update()
Вот пример кода:
// This is currently the code I'm implementing, works fine
users.forEach((user) => {
bulk.find({ username: user.username})
.updateOne({ $set: { user } });
});
bulk.execute();
Я бы хотел сделать что-то вроде этого:
// code won't work, this is what I'm attempting to do
users.forEach((user) => {
bulk.find({ username: user.username}, function (dbUser) {
if (dbUser) user.email = dbUser.email;
})
.updateOne({ $set: { user } });
});
Но bulk.find ().update () не позволяет промежуточную логику, насколько я могу придумать.У кого-нибудь есть работа или документы, которые я не могу найти?