Я хочу обновить значение поддокумента, где сообщение имеет определенный идентификатор, а идентификатор пользователя - в массиве получателей. Я хочу обновить значение совпадающего объекта с указанным идентификатором пользователя.FeathersJS Mongoose: обновление совпадающего поддоку не работает
Когда я запускаю следующий запрос на MongoDB CLI, все работает и значение обновляется:
db.getCollection('messages').update({
_id : ObjectId("57d7edb8c497a75a6a7fde60"),
"recipients.userId" : "5789127ae2bcc79326462dbc"
},{
$set : {"recipients.$.read": true}
});
Но когда я запускаю следующий запрос с помощью JS в моем приложении FeathersJS:
messageService.update({
_id : '57d7edb8c497a75a6a7fde60',
"recipients.userId" : "5789127ae2bcc79326462dbc"
},{
$set: {"recipients.$.read": true}
}).then(function(e) {
console.log(e)
}).catch(function(e) {
console.log(e);
});
я получаю ошибку:
GeneralError: The positional operator did not find the match needed from the query. Unexpanded update: recipients.$.read
Что я делаю неправильно?
И есть ли лучший способ обновить сразу несколько сообщений?
Спасибо!
Имеет смысл для меня, но когда я запускаю этот код, я получаю «Ошибка: [object Object]» ответ – tan
Возможно, https://docs.feathersjs.com/debugging/readme.html может помочь получить более качественное сообщение об ошибке (может быть, ошибка в том, что он неправильно преобразовывает ошибку). – Daff
Необходимо использовать патч вместо обновления. Благодаря! – tan