Обновить элемент в объекте, вложенном в массив, перьями Js и Reactjs - PullRequest
1 голос
/ 29 апреля 2020

Я использую перья js для своего бэкэнда, и моя служба / коллекция пользователей похожа на такую:

{ name :'my Name',

email: 'example@gmail.com',

_id "9878787977377827..."
students:[
{name: 'student 1 name', _id: 2113232..., active: true},
{name: 'student 2 name', _id: 2113232..., active: true}
]
}

... Я хотел бы изменить, например, активный статус ученика на «ложь». Я попробовал это

client.service('users').update({ 'students._id': id },
{$set: {'students.$.active': false,}},function (err, model) {if (err) {console.log(err);}})

, но ничего не получалось

1 Ответ

0 голосов
/ 29 апреля 2020

Если вы здесь, я смог исправить патенты (студенты), используя этот запрос,

const query = { "subdoc._id": id }
  client.service('users').patch(mainDoc._id, { "students.$.active": false 
  }, { query });

в моем случае;

const query = { "students._id": id }
client.service('users').patch(user._id, { "students.$.active": false 
}, { query });

Для исправления одного конкретного объект в моем массиве студентов, я передаю идентификатор основного документа, который является user._id и _Id вложенного объекта, который _id студента, затем я устанавливаю student.active в false. Спасибо.

перейдите по этой ссылке, если все еще в замешательстве. https://github.com/feathersjs-ecosystem/feathers-mongoose/issues/208

...