찾다

 >  Q&A  >  본문

Mongodb 내장 문서 검색 및 수정 문제

데이터 형식은 다음과 같습니다.

으아악

지금 생각하는 것은
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_leeringa_lee2797일 전1219

모든 응답(3)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-24 09:14:57

    쿼리 문은 다음과 같이 단순화될 수 있습니다.

    으아악

    쿼리 결과는 일치 조건을 충족하는 문서를 반환합니다. 반환된 필드를 매핑할 수는 있지만 실제로 언급한 문서만 반환할 수는 없습니다id为2和3. 그러나 이제 조건을 충족하는 json 문서를 얻었으므로 원하는 포함된 하위 문서를 얻는 프로그램을 작성할 수 있습니다.

    업데이트 내용은 다음과 같습니다.

    으아악

    하지만 배열에서 일치하는 첫 번째 하위 문서만 업데이트하지만 albums.id독특해 보이고 사용자의 요구 사항을 충족해야 합니다.

    회신하다
    0
  • 迷茫

    迷茫2017-04-24 09:14:57

    #1에 대한 해결책이 있습니다. $elemMatch는 반환된 배열의 요소를 제한하기 위해 find 메소드의 두 번째 매개변수로 사용될 수도 있습니다. 다음과 같습니다:

    으아아아

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-24 09:14:57

    하위 문서 ID가 자동으로 늘어나나요?

    회신하다
    0
  • 취소회신하다