mongodb에서 하위 개체를 쿼리하는 방법
저는 mongodb를 처음 접하는 사람이고 어린이 물건을 문의하려고 합니다.저는 주(州)의 컬렉션을 가지고 있고, 각 주(州)는 자도시를 가지고 있습니다.Citys 중 하나에 null인 Name 속성이 있어 앱에서 오류가 발생합니다.이름이 == null인 하위 도시를 찾으려면 주 컬렉션에 어떻게 문의해야 합니까?
정확하다면null
(설정되지 않은 것이 아니라):
db.states.find({"cities.name": null})
(하지만 javierfp가 지적한 바와 같이 도시 배열이 전혀 없는 문서와도 일치합니다.아마 도시 배열이 있을 겁니다).
속성이 설정되지 않은 경우:
db.states.find({"cities.name": {"$exists": false}})
위의 테스트를 다음 두 가지 삽입으로 작성한 컬렉션으로 수행했습니다.
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
첫 번째 쿼리는 첫 번째 상태를 찾고 두 번째 쿼리는 두 번째 상태를 찾습니다.하나의 쿼리로 둘 다 찾으려면$or
쿼리:
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})
"상태" 컬렉션은 다음과 같다고 가정합니다.
{"name" : "Spain", "cities" : [ { "name" : "Madrid" }, { "name" : null } ] }
{"name" : "France" }
도시가 null인 주를 찾기 위한 쿼리는 다음과 같습니다.
db.states.find({"cities.name" : {"$eq" : null, "$exists" : true}});
Null을 쿼리하는 일반적인 오류는 다음과 같습니다.
db.states.find({"cities.name" : null});
이 쿼리는 키가 없는 모든 문서를 반환하기 때문입니다(이 예에서는 스페인과 프랑스가 반환됩니다).따라서 키가 항상 존재하는지 확인하지 않는 한 첫 번째 쿼리와 같이 키가 존재하는지 확인해야 합니다.
언급URL : https://stackoverflow.com/questions/4762947/how-to-query-child-objects-in-mongodb
'programing' 카테고리의 다른 글
material-ui 드로어 - findDOMName은 Strict Mode에서 사용되지 않습니다. (0) | 2023.04.04 |
---|---|
표 형식의 데이터가 포함된 Excel 스프레드시트를 JSON으로 변환하는 가장 쉬운 방법은 무엇입니까? (0) | 2023.04.04 |
Ajax 호출 성공 후 Slik js 재초기화 (0) | 2023.04.04 |
어레이 필드에 고유한 값 또는 MongoDB 내의 다른 어레이가 포함되어 있는지 확인하는 방법 (0) | 2023.04.04 |
es6 - 에일리어스 없이 명명된 모든 모듈을 Import합니다. (0) | 2023.04.04 |