Mongodb Query To select records having a given key

The records in my database are

{"_id":"1","fn":"sagar","ln":"Varpe"}

{"_id":"1","fn":"sag","score":"10"}

{"_id":"1","ln":"ln1","score":"10"}

{"_id":"1","ln":"ln2"} 

I need to design a MongoDB query to find all records that have a given key.

For example, if I pass ln as a parameter to the query it shuold return all records in which lnis a key. The results would be

{"_id":"1","fn":"sagar","ln":"Varpe"}

{"_id":"1","ln":"ln1","score":"10"}

{"_id":"1","ln":"ln2"} 

To find if a key/field exists in your document use the $exists operator.

Via the MongoDB shell ...

db.things.find( { ln : { $exists : true } } );

I had the same problem and

db.coll.find({"mykey":{'$exists': 1}})

worked for me


db.collection.find({ ln: { $exists: true} });

The $size operator matches any array with the number of elements specified by the argument. For example:

db.collection.find({ ln: { $exists: true, $size: 0 } });

$size does not accept ranges of values. To select documents based on fields with different numbers of elements, create a counter field that you increment when you add elements to a field.