I'm having trouble with the distinct query in MongoDB.
I can write it in Mongo shell, it works but I don't know how to implement it in Go code.
Here is my Mongo shell code
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"`
}
repository.go
package repository import "bitbucket.org/cloud-platform/vnpt-sso-usermgnt/model" type IProfileRepository interface { FindRoleByUserProduct(string) (*model.CompanyRoleFunction, error) }
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 }