我对Go和MongoDB都很新。尝试从数据库中选择一个字段并将其保存在int切片中,但没有任何效果。
userIDs := []int64{}
coll.Find(bson.M{"isdeleted": false}).Select(bson.M{"userid": 1}).All(&userIDs)
以上打印出一个空切片。但是,如果我使用单个ID
字段创建一个带有编组的int64的结构,那么它可以正常工作。
我想要做的就是使用一个包含我需要的ID的简单切片,而不是一个带有单个字段的结构。感谢所有帮助。
答案 0 :(得分:3)
由于mgo查询返回文档,因此需要几行代码才能完成目标:
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
}