필드가 존재하지 않거나 null이거나 false인 MongoDB 문서를 선택하십시오.
다음 문서를 포함하는 컬렉션이 있다고 가정합니다.
{ "_id": 1, name: "Apple" }
{ "_id": 2, name: "Banana", "is_reported": null }
{ "_id": 3, name: "Cherry", "is_reported": false }
{ "_id": 4, name: "Kiwi", "is_reported": true }
"is_reported"가 거짓인 모든 문서(존재하지 않음, null 또는 false)를 선택하는 더 간단한 쿼리가 있습니까?즉, 키위가 아닌 애플, 바나나, 체리를 선택하는 쿼리입니다.
MongoDB FAQ에 따르면{ "is_reported": null }는 "is_module"이 null이거나 존재하지 않는 문서를 선택하지만 "is_model"이 false인 문서는 선택하지 않습니다.
지금은 다음과 같은 질문이 있습니다만, 잘 동작하고 있습니다만, 그다지 우아하지 않은 것 같습니다.선택해야 하는 필드가 여러 개일 경우 매우 빠르게 복잡해집니다.동일한 최종 결과를 얻을 수 있는 더 나은 쿼리가 있습니까?
db.fruits.find({ $or: [ { "is_reported": null }, { "is_reported": false } ] })
이 조작은, 다음과 같이 실시할 수 있습니다.
db.fruits.find({is_reported: {$in: [null, false]}})
반환:
{
"_id": 1,
"name": "Apple"
}
{
"_id": 2,
"name": "Banana",
"is_reported": null
}
{
"_id": 3,
"name": "Cherry",
"is_reported": false
}
논리적으로 뒤집어서$ne다른 가치관이 없다면true제외:
db.fruits.find({is_reported: {$ne: true}})
언급URL : https://stackoverflow.com/questions/22290538/select-mongodb-documents-where-a-field-either-does-not-exist-is-null-or-is-fal
'source' 카테고리의 다른 글
| php: json 어레이를 통한 루프 (0) | 2023.02.22 |
|---|---|
| AngularJS $interval 함수는 루트 변경 후에도 계속됩니다. (0) | 2023.02.22 |
| Reactjs가 초점을 맞출 때 입력되는 모든 텍스트를 선택하려면 어떻게 해야 합니까? (0) | 2023.02.22 |
| XMLHttpRequest에서 진행 상황을 가져오는 방법 (0) | 2023.02.22 |
| 일반 상태 비저장 구성 요소 반응 유형?또는 일반 기능 인터페이스를 더 일반적이 되도록 타이프스크립트로 확장합니까? (0) | 2023.02.22 |