Implement distinct query and $in with Mgo

I have trouble difficulty with distinct query in MongoDB.

I can write Mongo shell, it works but I don’t know how to implement it in Go code.

Here is my Mongo shell:

db.getCollection('company_role_function').distinct("rolecode", {rolecode : {
   $in: ['DHBK_ROLE_01','DHBK_ROLE_03' ] },productid:'IOT_Platform'
})

And here is my Go code

1.profile.go

type CompanyRoleFunction struct {
        Rolecode     string `json:"rolecode"`
        Productid    string `json:"productid"`
        Functioncode string `json:"functioncode"`
        Comid        string `json:"comid"`
     }
  1. repository.go
package repository
import "bitbucket.org/cloud-platform/vnpt-sso-usermgnt/model"
type IProfileRepository interface {
   FindRoleByUserProduct(string) (*model.CompanyRoleFunction, error)
}
  1. mongo_driver.go
package repository
import (
    "bitbucket.org/cloud-platform/vnpt-sso-usermgnt/model"
    "go.mongodb.org/mongo-driver/bson"
    "gopkg.in/mgo.v2"
)
type ProfileRepositoryMongo struct {
  db         *mgo.Database
  collection string
 }

 func NewProfileRepositoryMongo(db *mgo.Database, collection string) *ProfileRepositoryMongo {
    return &ProfileRepositoryMongo{
    db:         db,
    collection: collection,
   }
}
//I HAVE TROUBLE HERE
 func (r *ProfileRepositoryMongo) FindRoleByUserProduct(rolecode arr[]string)  (*model.CompanyRoleFunction, error) {
  var companyRoleFunction model.CompanyRoleFunction
   //I HAVE TROUBLE HERE
  err := r.db.C(r.collection).Find(bson.M{"username": username}).One(&companyRoleFunction)
   //I HAVE TROUBLE HERE
  if err != nil {
      return nil, err
   }
  return &companyRoleFunction, nil
 }

Please help me.
Thank you.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.