I have a collection that looks like this:
{
"value" : "20",
"type" : "square",
"name" : "form1"
}
{
"value" : "24",
"type" : "circle",
"name" : "form2"
}
{
"value" : "12",
"type" : "square",
"name" : "form3"
}
I want to extract a document with name = form2
so I type:
db.myCollec.find({"name":"form2"} , {"name":1, "type":1, "_id":0})
The result is:
{ "name" : "form2", "type" : "circle" }
Now if I want to find a document with name = form4
I type:
db.myCollec.find({"name":"form4"} , {"name":1, "type":1, "_id":0})
But this returns nothing because there is no document with this name.
However I want the return value to look like this:
{ "name" : "form4", "type" : null }
How would I do this?
Why you dont check in callback if result==null and create your own empty object?
You can use below aggregation
Mongodb doesn't produce the result if there is not
$match
ed data found with the query.But you can use
$facet
aggregation which processes multiple aggregation pipeline within single stage.So first use
$facet
to get the$match
ed documents and use$project
ion if no ($ifNull
) data found.