Search code examples
mongodbgomgo

how to get distinct values in mongodb using golang


I tried to retrieve a document from my collection with unique id.

I have a collection with fields: name, age, city, and rank. I want to get 'city' results from mongodb using golang.

My struct code

type exp struct {
    name string `bson:"name"`
    age  int    `bson:"age"`
    city string `bson:"city"`
    rank int    `bson:"rank"`
}

With the following code to retrieve results from mongodb:

var result []exp //my struct type

err = coll.Find(bson.M{"City":bson.M{}}).Distinct("City",&result)

fmt.Println(result)

With this code I get an empty array as the result. How would I get all the cities?


Solution

  • Try this code

     var result []string 
    
     err = c.Find(nil).Distinct("city", &result)
    
     if err != nil {
         log.Fatal(err) 
     }
    
     fmt.Println(result)