Предположим, у меня есть следующую структурусортировать MongoDB запрос на основе поля в поддокументе в Go
type Test struct {
Title string `bson:"title" json:"title"`
Update Update `bson:"update" json:"update"`
}
type Update struct {
Changes []string `bson:"change" json:"change"`
UpdatedAt time.Time `bson:"updatedAt" json:"updatedAt"`
}
И предположим, что я хочу, чтобы отсортировать мои результаты в запросе на «update.updatedAt»
cs.Find(bson.M{title: "some title"}).Sort("-update.updatedAt").Limit(10).All(&results)
Этот запрос не работает должным образом. Кажется, я не могу найти документацию о том, как сортировать запрос по полю вложенного документа. Интуитивно я был уверен, что мой пример будет работать. Для справки, «-updatedAt» работает очень хорошо, но по причинам, которые не нужны для объяснения, я должен постоянно обновлять как поддокумент Test.
Каждый пример и вопрос переполнения стека, который я видел до сих пор, включают сортировку и переупорядочение поддокументов или массивов. В этом случае меня не интересует порядок моих поддокументов, и я не разбираюсь ни в чем внутри массива. Я просто хочу отсортировать документы по дате субдокумента.
Есть ли способ сделать это с помощью библиотеки запросов Go Mgo Query?
Вы абсолютно правы. Спасибо, что нашли время, чтобы собрать это вместе. – Quest