@JIakki

Как изменить все значение mongodb?

Можно ли переделать запрос на изменение более рационально ?

User.findOne({_id: token.id}, function(err, user) {
		
		// для кожного елементу 
		for(var elem of user.data.categories) {

			// скинути баланс до нуля
			User.update({
				"_id" : token.id,
				'data.categories.name': elem.name
			}, {
				'$set': {
					'data.categories.$.balance': 0
				}
			}, function(){
				if(err) console.log(err)
			})

		}
	})


Так как через User.update сразу обновить все не получаеться
  • Вопрос задан
  • 799 просмотров
Пригласить эксперта
Ответы на вопрос 2
angrySCV
@angrySCV
machine learning, programming, startuping
@lega
Можно считать документ, обнулить все и записать обратно (с 2-х фазным комитом или локом).
Так же можно пересмотреть структуру документа, раз вам понадобились такие операции, например можно попробовать хранить категории не массивом а словарем:
data:{
  categoryName1:{ balance: 0},
  categoryName2:{ balance: 0}
}
Тогда можно будет за раз обновить все категории по прямым ключам
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы