【发布时间】:2020-02-14 00:39:51
【问题描述】:
我想创建一个对象数组,但只能使用过滤后的键值列表。
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"
}
]
【问题讨论】:
-
你考虑过'投影'findOption吗?