Не удается получить данные из mongodb с помощью mgo

Мне очень жаль эту тему. Я вижу много других, но все, что угодно, могло помочь мне решить мою проблему.

Итак, я использую Go + mgo в своем бэкэнде, и структура, которую мне нужно искать, следующая:

type Video struct {
    ID           bson.ObjectId `bson:"_id,omitempty"`
    Title        string        `bson:"title"`
    Duration     string        `bson:"duration"`
    Url          string        `bson:"url"`
    DefaultThumb string        `bson:"defaultthumb"`
    SiteID       SiteProfile   `bson:"siteid"`
}

В таблице «видео» содержится 2kk + информации, и сначала я должен выбрать эти видео из его профиля сайта, который хранится в этой структуре:

type SiteProfile struct {
    ID         bson.ObjectId `bson:"_id,omitempty"`
    Name       string        `bson:"name"`
    Site       string        `bson:"site"`
    ExportUrl  string        `bson:"exportUrl"`
    ExportType string        `bson:"exportType"`
}

Затем я выполняю эту команду, чтобы получить запросы с одинаковым профилем внутри цикла профилей:

    var videos []Video
    collVideos.Find(bson.M{"siteid.name": profile.Name}).All(&videos)

В сообщениях журнала я получаю пустой массив и делаю то же самое с помощью Robomongo, то есть на основе узлов, у меня эти строки обычно перечислены в профиле сайта. Итак, кто-нибудь знает, как я могу получить эти данные в поисках вложенного объекта?

Спасибо за помощь!


person Alexandre Ferreira    schedule 16.05.2016    source источник
comment
пожалуйста, не игнорируйте возврат ошибки Find.   -  person Jiang YD    schedule 16.05.2016
comment
@JiangYD, спасибо! Я исправляю эту строку кода, но ошибки не возвращаются!   -  person Alexandre Ferreira    schedule 16.05.2016
comment
Попробуйте проверить журналы mgo с помощью этих mgo.SetDebug (true) mgo.SetLogger (log.New (os.Stdout, err, 6))   -  person Ami    schedule 25.05.2017


Ответы (1)


Что ж, это действительно странно, но когда я переписываю код, проверяя ошибку с помощью метода поиска, он работает. Я только что сделал это:

    var videos []Video
    err := collVideos.Find(bson.M{"siteid.name": profile.Name}).All(&videos)
    CheckError(err)
person Alexandre Ferreira    schedule 16.05.2016