Задать вопрос
@deadkEEper1

Как добавить свойство mongo модели по условии?

Есть массив ids и mongo колекция users;
Нужно проверить каждого юзера, есть ли его id в массиве ids. Если есть, то добавить новое свойство user.tagged = true;
Если же id в масиве нету, то user.tagged = false;

Код выполняеть только проверку по id, а добавить значения не получаеться.
var taggedIds = [....] 
UserModel.find({}, function (err, userModels) {
                    if (err) {
                        return cb(err);
                    }

                    async.each(userModels, function (user) {
                        if (taggedIds.toStringObjectIds().indexOf(user._id.toString()) !== -1) {
                            user.tagged = true;           // как именно добавлять и сохранять новые свойства?
                            console.log('Matched');
                        } else {
                            user.tagged = false;
                            console.log('Not matched');
                        }

                        user.save()
                    });
                    cb(null, userModels);
                });
            }


Спасибо.
  • Вопрос задан
  • 323 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Shutik
@Shutik
Погромист халявщик
db.usermodel.update({_id: {$in: [... taggedIds ...]}}, {$set: {tagged: true}}, {multi: true}); 
db.usermodel.update({_id: {$nin: [... taggedIds ...]}}, {$set: {tagged: false}}, {multi: true});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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