Я хотел бы создать массив объектов, но только с отфильтрованным списком значений ключей.
collection, err := driver.GetDBCollection()
cur, err := collection.Find(context.Background(), bson.D{{}})
if err != nil {
log.Fatal(err)
}
var results []primitive.M
for cur.Next(context.Background()) {
var result bson.M
e := cur.Decode(&result)
if e != nil {
log.Fatal(e)
}
results = append(results, result)
}
Допустим, мои данные в mongodb выглядят так:
[
{
"_id": "123456",
"username": "username1",
"password": "hashedPassword",
"token": "theToken"
},
{
"_id": "123456",
"username": "username2",
"password": "hashedPassword",
"token": "theToken"
},
{
"_id": "123456",
"username": "username3",
"password": "hashedPassword",
"token": "theToken"
},
{
"_id": "123456",
"username": "username4",
"password": "hashedPassword",
"token": "theToken"
}
]
То, что у меня есть выше, вернет все это, но если я не хочу показывать некоторые поля, как бы я возвращал все результаты только из выбранных ключей, например, не включая пароль и токен, например:
[
{
"_id": "123456",
"username": "username1"
},
{
"_id": "123456",
"username": "username2"
},
{
"_id": "123456",
"username": "username3"
},
{
"_id": "123456",
"username": "username4"
}
]
исх .: https://godoc.org/go.mongodb.org/mongo-driver/mongo