데이터 형식은 다음과 같습니다.
으아악지금 생각하는 것은
1, people_id가 1이고 권한이 5인 임베디드 문서를 쿼리합니다. mongodb 쿼리 명령어 작성 방법
2,포함된 문서의 이름 필드 값을 people_id 2 및 권한 ID 2~6으로 업데이트합니다. 업데이트 명령 작성 방법
내가 이용하는 문의
db.find({"people_id" : 1,"albums":{"$elemMatch" : {"privilege" : 5}}})
일치를 시도했지만 일치가 실패했습니다.
ID가 1인 것을 원하지 않고 ID가 2와 3인 것을 고유하게 일치시키고 싶습니다
수정, 정말 어떻게 해야할지 모르겠어요
해결 방법을 알려주세요. 정말 감사합니다.
ringa_lee2017-04-24 09:14:57
쿼리 문은 다음과 같이 단순화될 수 있습니다.
으아악쿼리 결과는 일치 조건을 충족하는 문서를 반환합니다. 반환된 필드를 매핑할 수는 있지만 실제로 언급한 문서만 반환할 수는 없습니다id为2和3
. 그러나 이제 조건을 충족하는 json 문서를 얻었으므로 원하는 포함된 하위 문서를 얻는 프로그램을 작성할 수 있습니다.
업데이트 내용은 다음과 같습니다.
으아악하지만 배열에서 일치하는 첫 번째 하위 문서만 업데이트하지만 albums.id
독특해 보이고 사용자의 요구 사항을 충족해야 합니다.
迷茫2017-04-24 09:14:57
#1에 대한 해결책이 있습니다. $elemMatch는 반환된 배열의 요소를 제한하기 위해 find 메소드의 두 번째 매개변수로 사용될 수도 있습니다. 다음과 같습니다:
으아아아