У меня есть набор документов, которые были вставлены в Монго ищет что-то вроде этого:запрос документы с различными структурами для результатов
type Stats struct {
UserStatus string `json:"userStatus" bson:"userStatus"`
... a bunch more fields
}
type User struct {
ID bson.ObjectId `json:"-" bson:"_id"`
LastName string `json:"lastName" bson:"lastName"`
FirstName string `json:"firstName" bson:"firstName"`
Role string `json:"role" bson:"role"`
Tags []string `json:"tags" bson:"tags"`
... (a bunch more fields)
Stats UserStats `json:"stats" bson:"stats"`
}
Я хочу, чтобы запросить его, чтобы получить конкретный отчет, поэтому я попытался это:
func UserNameReport() {
... get mongo session, etc.
// create struct of just the data I want returned
type UserNames struct {
LastName string `json:"lastName" bson:"lastName"`
FirstName string `json:"firstName" bson:"firstName"`
... etc
UserStats Stats `json:"stats" bson:"stats"`
}
projection := bson.M{"lastName":1, "firstName":1, etc}
result := []UserNames{}
err := x.Find({query user collection}).Select(projection).All(&result)
...
}
Это работает - мой вопрос в том, как я могу включить только одно поле из структуры «Статистика»? Другими слова, я принципиально хочу, чтобы «проекция», чтобы быть такой:
projection := bson.M{"lastName":1, ..., "stats.userStatus":1} <-- stats.userStatus doesn't work
...
err := x.Find({query user collection}).Select(projection).All(&result)
я вся «Статистика» внедренная структурой в результатах - как я могу отфильтровать только одно поле из поддокумента в и поместить его в результирующий набор?
Спасибо!