Как получить доступ к значениям массива, присутствующим в mongodb, используя golang? - PullRequest
0 голосов
/ 02 мая 2019

Я хочу получить доступ к значениям массива (access Specode), присутствующим в базе данных mongodb из golang.

type MTopic struct {
    SpecCodes []struct {
        SpecCode string `json:speccode`
    }
    TopicCode    string `json:topiccode`
    TopicDesc    string `json:topicdesc`
    TopicBigDesc string `json:topicbigdesc`
    TopicSource  string `json:topicsource`
    TopicSources []struct {
        Topic string `json:topic`
    }
    CreatedBy string `json:createdby`
    CreatedOn string `json:createdon`
    UpdatedBy string `json:updatedby`
    UpdatedOn string `json:updatedon`
}

, используя следующий код

func (m *TopicMaster) GetTopic(userdetails string) (list []MTopic, err error) {
    collection := dbConnect7.Use("masterdata", "topic_master")
    err = collection.Find(bson.M{"speccodes": userdetails}).All(&list)
    return list, err
  }

Я должен получить все значения, которыеналичие специальных кодов пользовательских деталей в коллекции topic_master.Джин каркас.Этот код из моделей.

1 Ответ

0 голосов
/ 02 мая 2019

просто попробуй вот так

        type MTopic struct {
    SpecCodes []struct {
        SpecCode string `json:"speccode"`
    } `json:"speccodes"`
    TopicCode    string `json:"topiccode"`
    TopicDesc    string `json:"topicdesc"`
    TopicBigDesc string `json:"topicbigdesc"`
    TopicSource  string `json:"topicsource"`
    TopicSources []struct {
        Topic string `json:"topic"`
    }
    CreatedBy string `json:"createdby"`
    CreatedOn string `json:"createdon"`
    UpdatedBy string `json:"updatedby"`
    UpdatedOn string `json:"updatedon"`
}

и ваша функция должна быть такой

        func (m *TopicMaster) GetTopic(userdetails string) (list []MTopic, err error) {
        collection := dbConnect7.Use("masterdata", "topic_master")
        findQ := bson.M{"speccodes.speccode": userdetails}
        list := make([]MTopic, 0)
        if err = collection.Find(findQ).All(&list); err != nil {
            err=errors.Wrapf(err, "failed to fetch topic info for user detail %s", userdetails)
            return nil, err
        }
        return list, err
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...