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
}
我对 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
}