메시지에 특정 ID가 있고 사용자 ID가받는 사람 배열에있는 하위 문서의 값을 업데이트하려고합니다. 일치하는 개체의 값을 지정된 사용자 ID로 업데이트하려고합니다. 나는 MongoDB를 CLI에서 다음 쿼리를 실행하면FeathersJS Mongoose : 일치하는 하위 문서 업데이트 중 작동하지 않습니다.
, 모든 작업 및 값이 업데이트됩니다 :
messageService.update({
_id : '57d7edb8c497a75a6a7fde60',
"recipients.userId" : "5789127ae2bcc79326462dbc"
},{
$set: {"recipients.$.read": true}
}).then(function(e) {
console.log(e)
}).catch(function(e) {
console.log(e);
});
:
db.getCollection('messages').update({
_id : ObjectId("57d7edb8c497a75a6a7fde60"),
"recipients.userId" : "5789127ae2bcc79326462dbc"
},{
$set : {"recipients.$.read": true}
});
을하지만 내 FeathersJS 응용 프로그램에서 JS를 통해 다음과 같은 쿼리를 실행할 때
오류가 발생합니다.
GeneralError: The positional operator did not find the match needed from the query. Unexpanded update: recipients.$.read
무엇이 잘못 되었나요?
한번에 많은 메시지를 업데이트하는 더 좋은 방법이 있습니까?
감사! 당신이 null
에 id
을 설정하고 params.query
에 쿼리를 바꾸어 service method를 호출 할 필요가 쿼리에 의해 하나를 업데이트하거나 여러 레코드를 들어
나를 위해 감각을 만들지 만, 내가 얻을이 코드를 실행하면 "Error : [object Object]"응답 – tan
https://docs.feathersjs.com/debugging/readme.html이 더 나은 오류 메시지를 얻는 데 도움이 될 수 있습니다 (오류를 올바르게 변환하지 못하는 버그 일 수 있음). – Daff
업데이트 대신 패치를 사용해야합니다. 감사! – tan