Golang mgo 结果变成简单的切片

Golang mgo result into simple slice

我对 Go 和 MongoDB 都很陌生。尝试 select 数据库中的单个字段并将其保存在 int 切片中但没有任何用处。

userIDs := []int64{}

coll.Find(bson.M{"isdeleted": false}).Select(bson.M{"userid": 1}).All(&userIDs)

以上打印出一个空切片。但是,如果我创建一个带有单个 ID 字段的结构,该字段是带有编组的 int64,那么它工作正常。

我想要做的就是使用包含我需要的 ID 的简单切片,而不是使用具有单个字段的结构。感谢所有帮助。

因为 mgo 查询 return 文档,所以需要几行代码来实现目标:

var result []struct{ UserID int64 `bson:"userid"` }
err := coll.Find(bson.M{"isdeleted": false}).Select(bson.M{"userid": 1}).All(&result)
if err != nil {
    // handle error
}
userIDs := make([]int64, len(result))
for i := range result {
    userIDs[i] = result.UserID
}