Как добавить поле в массив, который находится в объекте (mongoDB)?

вот такая DB:
{
    "_id" : "NGhp5Ad8cTvcQaWjf",
    "profile" : {
        "name" : "dsfsdf",
        "favorites" : [ 
        ]
    }
}

Нужно добавить поле в массив "favorites".
Следующий запрос не работает по причине "Cannot apply $push modifier to non-array for field 'profile' [409]":
Meteor.users.update({"_id" : Meteor.userId()}, {$push: {"profile" : {"favorites": instance.data.userId}}})
  • Вопрос задан
  • 1725 просмотров
Решения вопроса 1
@Urukhayy
Свойство $push, в качестве значения, принимает объект со свойством, соответствующим названию массива. В вашем случае -- $push принимает объект со свойством "profile", которое указывает на поле, не являющееся массивом. Нужно так:
$push: {
    "profile.favorites": ......
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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