I want to retrieve each record for different values of a key. For example I have a below collection
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "xxx", Data" : 111}
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "xxx", Data" : 222}
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "yyy", Data" : 333}
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "yyy", Data" : 444}
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "zzz", Data" : 555}
From the above collection I want single record for each key - “name”. I want retrieval output as
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "xxx", Data" : 111}
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "yyy", Data" : 333}
{ "_id" : ObjectId("583342efb60a1642ae70ec9d"), "name" : "zzz", Data" : 555}
I’ve tried lot of queries using findone, aggregate, group, match, distinct, etc ,… Basically I tried to find
db.collection.find({"name" : ["xxx", "yyy","zzz"]}).limit(1)
The above query will retrieve only one record. But i’m not sure how to club the queries to get one on each key value for the key - “name”
Any help would be appreciable. Thanks in advance.