У меня есть «комплекс» объект похож на это в моем MongoDB документа:Обновление сложного объекта в MongoDB документе
{_id: "5zvYuC37aXSAjGNEg",
profile: {
name: "profile_name",
keys:[{
keyID: "12345",
code: "12345",
chars:[{
name: "char_name1",
char_id: "12345",
active: 0
}, {
name: "char_name2",
char_id: "67890",
active: 0
}]
}]
}
}
Можно ли обновить значение active
, на основании которого char_id
я перехожу на мой запрос ? Эквивалент в MySQL будет, вероятно, что-то вроде:
UPDATE sometable SET active = 1 WHERE char_id = 12345
Я попытался запустить этот запрос:
Meteor.users.update(Meteor.userId(), {char_id:char_id}, {$set:{active:1} });
, но после этого, мой объект потерял все значения, кроме _id
и char_id
.
Вы перезаписаны данные с вашим пользователям обновлять. Он должен выглядеть так: 'Meteor.users.update ({_ id: Meteor.userId(), char_id: char_id}, {$ set: {active: 1}})'. В методе обновления второй аргумент должен быть тем, что вы хотите обновить, и у вас есть второй аргумент как селектор. Третьим должен быть обратный вызов. – MatiK