MongoDB : 필드가 존재하지 않는 문서를 찾으십니까?


173

"문서에 필드가 포함되지 않은"조건을 지정하는 방법이 있습니까?

예를 들어, "price"필드가 없기 때문에이 2 개 중 첫 번째 만 찾고 싶습니다.

{"fruit":"apple", "color":"red"}


{"fruit":"banana", "color":"yellow", "price":"2.00"}


3
또한 시도 할 수 있습니다db.mycollection.find({ "price" : null })
evilReiko

답변:


329

$exists운영자를 시도하십시오 .

db.mycollection.find({ "price" : { "$exists" : false } })

설명서를 참조하십시오 .


12
+1. 그러나 이러한 쿼리는 인덱싱을 사용할 수 없으며 대규모 컬렉션에서는 속도가 매우 느릴 수 있습니다.
mnemosyn

10
좋은 지적-감사합니다. 필자는이 경고가 MongoDB 버전 1.8.x 및 그 이전 버전에서 유효하다는 것을 알고 있습니다. 하지만 $ exists 필드 제약 조건이있는 쿼리는 이제 버전 2.0에서 인덱스를 사용할 수 있다고 생각했습니다 ...?
댐퍼
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.