Задать вопрос
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 }}))

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

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

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