We have various ways to achieve the result. However, we will discuss here two methods.
Table of Contents
1. Distinct
db.collection.distinct(field, query, options)Finds the distinct values for a specified field across a single collection or view and returns the results in an array.
This method takes the following parameters:
| Parameter | Type | Description | 
|---|---|---|
| field | string | The field for which to return distinct values. | 
| query | document | A query that specifies the documents from which to retrieve the distinct values. | 
| options | document | Optional. A document that specifies the options. See Options. | 

Examples
The examples use the inventory collection that contains the following documents:
{
    "_id": 1,
    "dept": "A",
    "item": {
        "sku": "111",
        "color": "red"
    },
    "sizes": ["S", "M"]
}{
    "_id": 2,
    "dept": "A",
    "item": {"sku": "111","color": "blue" },
    "sizes": [ "M", "L"]
}{
    "_id": 3,
    "dept": "B",
    "item": {"sku": "222", "color": "blue"},
    "sizes": "S"
}{
    "_id": 4,
    "dept": "A",
    "item": {"sku": "333", "color": "black"},
    "sizes": [ "S"]
}Return Distinct Values for a Field
The following example returns the distinct values for the field dept from all documents in the inventory collection:
db.inventory.distinct( "dept")
The method returns the following array of distinct dept values:
[ "A", "B" ]
Return Distinct Values for an Embedded Field
The following example returns the distinct values for the field sku, embedded in the item field, from all documents in the inventory collection:
db.inventory.distinct("item.sku")The method returns the following array of distinct sku values:
[ "111", "222", "333" ]
2. Aggregation Pipeline:
The following aggregation operation uses the $group stage to retrieve the distinct item values from the sales collection:
db.inventory .aggregate( [ { $group : { _id : "$dept" } } ] )The operation returns the following result:
{ "_id" : "A" }{ "_id" : "B" } 
							 
							 
							
