I was checking logic for querying on non-values and noticed when using the mongo shell, it differentiates between undefined and null v
mongo
undefined
null
If you want to return a document where a field exists AND is not null, use { a : {$ne : null}}
{ a : {$ne : null}}
Undefined and null values are different, but the shell shows them both as null - https://jira.mongodb.org/browse/SERVER-6102