db.collection.find({"lastname" : {"$exists" : true, "$ne" : ""}})
(ID의 공간을 절약하기 위해 생략) 당신은 또한 필터링 할 경우
> db.collection.find()
{ "name" : "Angela" }
{ "name" : "David", "lastname" : "" }
{ "name" : "Kyle", "lastname" : "Test" }
{ "name" : "John", "lastname" : null }
> db.collection.find({"lastname" : {"$exists" : true, "$ne" : ""}})
{ "name" : "Kyle", "lastname" : "Test" }
{ "name" : "John", "lastname" : null }
는 다음과 같이 기준을 조정해야 null 값에 대해 일치 (우리 또한 $ 제거 할 수는 "$ 네브라스카"로 존재 : 널 (null) 당신은 정규식 쿼리를 사용할 수 있습니다
> db.collection.find({$and:[{"lastname": {"$ne": null}}, {"lastname": {"$ne": ""}}]})
{ "name" : "Kyle", "lastname" : "Test" }
파이썬에는 $ ne 주변의 따옴표가 필요합니다. 그래서 표현식 {$ ne : ""}은 level2_c가 ""이고 level2_c 노드가 존재하지 않을 때 true로 평가됩니다. 그래서 나는 이것을 { "level2_c": { "$ exists": True}, "level1_b.level2_c": { "$ ne": "}}와 같이 필터링해야했습니다. 이것은 작동하지만 다소 추한 것 같습니다. –
나는 몽고 껍질에서 시험하고 있었다. 당신이 정답을 발견해서 다행입니다. – Kyle
감사합니다. 나는 약간의 질문을 명확히했다. 다시 봐주실 수 있습니까? { "lastname": { "$ exists": True}, "lastname": { "$ ne": ""}}보다 나은 답변이 있습니까? –