Задать вопрос
Stepashka20
@Stepashka20
(☞゚ヮ゚)☞

Как написать updateMany с учётом каждого документа?

Допустим для 1 документа можно сделать следующее:
1. Получить документ через findOne, запомнить его значения
2.
Users.updateOne({id: user.id}, {$inc: {balance: user.otherbalance* 2}})


Но как это сделать через updateMany? Пытался что-то типо:
updateMany({}, {$inc: {balance: {$multiply: ["$otherbalance", 2]}}})

Но возникает ошибка:
Cannot increment with non-numeric argument
Хотя строковых значений ни в balance, ни в otherbalance нет. (Проверял через find({balance: {$type: 2 }}))

Как быть? Как увеличить значение каждому документу в зависимости от другого значения этого документа?
  • Вопрос задан
  • 43 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Stepashka20
@Stepashka20 Автор вопроса
(☞゚ヮ゚)☞
Решил проблему через aggregate:
Users.aggregate([
        {$project: {balance: {$add: ["$balance",{$multiply: ["$otherbalance",2]}]}}},
        {$merge: "users"}
 ])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы