홈>
숫자 키가있는 중첩 컬렉션을 쿼리하는 방법은 무엇입니까?
키를 알면 특정 컬렉션을 하나 선택할 수 있지만 모르는 경우 어떻게해야합니까? "마스크/패턴"의 종류가 있습니까? 나는 mongodb를 처음 사용하므로 여전히 어려움을 겪고 있습니다.
컬렉션 예 :.
{
"_id" : ObjectId("598842f22605c6cb8de9db78"),
"17" : {
"name" : "some name 1",
},
"18" : {
"name" : "some name 2",
},
"19" : {
"name" : "some name 3",
}
},
{ ... }
수행 할 수있는 작업 (숫자 키를 알고있는 경우 선택) :
db.getCollection('my.collection').find({'17.name' : 'some name 1'});
지금까지 나의 수색은 결실이 없었습니다. 적어도 누군가 나를 올바른 방향으로 안내 할 수 있습니까? 내가 기대하는 것 :
db.getCollection('my.collection').find({'#.name' : 'some name 1'}); <-- return every record from collection that has specified name and any numerical key
- 답변 # 1
관련 자료
- ios - Xcode 12 (Swift 53) 이후 중첩 된 컬렉션 뷰가 셀 선택에 응답하지 않습니다
- Kotlin에서 중첩 컬렉션을 공급하는 방법은 무엇입니까?
- json - VBNET 및 Newtonsoft에서 중첩 배열로 컬렉션 역 직렬화
- c# - odata - $expand에서 컬렉션에 중첩 된 $filter
- java - 맵스 트럭 트 - 중첩 컬렉션의 필드를 무시하십시오객체를 복제 할 때 작동하지 않습니다
- php - yii2의 mongodb 모음 - 중첩 배열의 모든 내용을 가져옵니다
- java - 스트림을 사용하여 중첩 컬렉션의 모든 요소를 가져 오는 방법
- excel - vba 중첩 컬렉션 - 변수를 사용하여 "중첩 된"키/인덱스로 값을 동적으로 가져 오기
- Scala - 스칼라 - 중첩 컬렉션 구조를 필터링하는 방법?
- flutter - cloud firestore - 중첩 요소 참조로 컬렉션을 얻는 가장 좋은 방법
- 중첩 된 컬렉션의 합계를 가져 오지 못했습니다 Laravel Eloquent
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
CrazySabbath,이 경우 중첩 된 컬렉션이 아닌문서가 있습니다. MongoDB 문서는 포함 된 문서 인 다른 문서를 중첩 할 수 있습니다.
mongo 셸을 사용하면 (
.getCollection()
를 사용하지 않고도) 컬렉션 이름을 사용하여 직접 쿼리 할 수 있습니다. ) :쿼리하는 경우, 포함 된 문서에 액세스하기 전에 오른쪽 필드에 대한 포인터가 필요하기 때문에 도트 표기법을 사용하여 중첩 된 문서 키에 대해 "마스크"가있는 쿼리를 가질 수 없습니다. 귀하의 예에서 더 나은 문서 구조는 실제로 다음과 같이 ID가 숫자 인 문서 배열입니다.
이 기능을 사용하면 점 표기법을 사용하여 쿼리 할 수 있지만 ID를 모르면 다음과 같은 작업을 수행 할 수 있습니다.
대신 중첩 된 문서 만 반환하려면 (질문의 구조를 사용하여) 문서 반환에 대한 투영을 수행 할 수 있습니다.
중첩 된 문서 만 사용해야하고 중첩을 수행하는 문서를 신경 쓰지 않는 경우 여기서 더 나은 구조는이 "17", "18"및 "19"를 다른 컬렉션에 배치하는 것입니다. 이 숫자는 ID입니다. 점 표기법 설명서를 참조하십시오