使用 MongoDB 从 Golang 中的子对象数组中获取值

Get values from array of child objects in Golang with MongoDB

我正在使用安装了最新版本 MongoDB 的 mgo.v2 驱动程序。我的文档结构是这样定义的:

type gameTemplate struct {
ID       bson.ObjectId `bson:"_id" json:"id"`
GameCode string        `bson:"gamecode" json:"gamecode"`
Players  []player      `bson:"players" json:"players"`
}

type player struct {
PlayerID bson.ObjectId `bson:"playerid" json:"playerid"`
Username string        `bson:"username" json:"username"`
Level    int           `bson:"level" json:"level"`
}

我将如何获取特定游戏中的用户名列表(由 gamecode 定义)?

有没有办法获取数组的大小并遍历元素,或者有更好的方法?

你可以让所有玩家都拥有这样的特定游戏代码:

players := []gameTemplate{}
err = session.DB(DBname).C(Colloctionname).Find(bson.M{}).All(&players) 

正如您定义的那样,每个玩家都有用户名,玩家切片的大小是具有特定游戏代码的用户名的数量。


ps:
小心并更改 DBname 和 Colloctionname whit 您的数据库和集合名称并使用数据库连接的会话 成为