2017-04-14 4 views
0

질문 제목에 무엇을 말하려고합니다. 객체 배열에서 단일 항목 제거. _id (ObjectID)을 사용하여 특정 개체를 제거하려고합니다. 아래 코드에서 볼 수 있듯이이 쿼리를 작성했습니다 : $pull: { 'ARRAY': {$elemMatch: {_id: idToRemove}}}. 다음에 일어날 일은 당신에게 충격을 줄 수 있습니다.

여기 var findOne = { 'User.username': req.user.User.username }; var query = { $pull: { 'User.Polls': {$elemMatch: {_id: req.body.pollID}}}}; User.findOneAndUpdate(findOne, query, function (err, response) {//EVERYTHING GOT REMOVED});

는 mongod 구조 photo]

답변

0

I의 사진입니다 : 배열에서 모든 항목이 여기에

쿼리를 전송 nodeJS 응용 프로그램의 코드입니다 ... 제거 나 자신을 해결했다. 내가 가지고있는 배열 (Polls)을 가리 키지 않은 User.Polls._id를 사용하고있었습니다. 그 후이 버그를 생성하는 $ elemMatch를 사용하여 전체 문서를 선택하여 작동하도록했습니다. $ elemMatch를 제거하면 문제가 해결됩니다. 그게 최종 검색어 $ pull : { 'User.Polls : {_id : req.body.pollID}}

관련 문제