2011-04-19 2 views

답변

146

그래, 그것은 $exists를 사용 가능 : true 인 경우

db.things.find({ a : { $exists : false } }); // return if a is missing 

은 $가 존재

필드의 값이 null의 문서를 포함하는 필드를 포함하는 문서를 일치합니다. false가 false이면 쿼리는 필드가없는 문서 만 반환합니다.

+1

'$ exist' 쿼리는 인덱스를 사용할 수 없다는 것을주의하십시오 (http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24exists 참조). – Theo

+4

@Theo : MongoDB 2.0부터 $ 인덱스는 인덱스 (https://jira.mongodb.org/browse/SERVER-393)를 사용할 수 있습니다. –

+0

나는 몽고이가 스코프에 사용하기 위해 사용했습니다. 다음과 같이 보입니다 :> "''scope : without_recommendation, : where => {: recommendation => {"$ exists "=> false}}''' – genkilabs

47

당신은 상관하지 않는 경우 필드가 없거나 null (또는 null을 결코 경우) 다음 약간 짧고를 사용할 수있는 경우 안전 :

db.things.find({ a : null }); // return if a is missing or null 

$existstrue를 반환하기 때문에 그것은 안전합니다 필드가 null 인 경우에도 원하는 결과가 아니므로 NPE로 이어질 수 있습니다.

관련 문제