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

我正在使用安装了最新版本MongoDB的mgo.v2驱动程序。 我的文档结构定义如下:</ p>

  type gameTemplate结构{
ID bson.ObjectIdbson:“ _ id” json:“ id”
GameCode字符串bson:“ gamecode“ json:” gamecode“
Players [] playerbson:” players“ json:” players“
}

type player struct {
PlayerID bson.ObjectIdbson:” playerid“ json:” playerid “
用户名字符串bson:”用户名“ json:”用户名“
Level intbson:” level“ json:” level“
}
</ code> </ pre>

< p>如何获取特定游戏中的用户名列表(由 gamecode </ code>定义)? </ p>

是否有一种获取数组大小并遍历元素的方法,还是有一种首选的方法? </ p>
</ div>

展开原文

原文

I am using the mgo.v2 driver with the latest version of MongoDB installed. My document structure is defined like this:

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"`
}

How would I go about getting a list of usernames in a particular game (Defined by gamecode)?

Is there a way to get the size of the array and iterate through the elements, or is there a preferred method?

doukuibi9631
doukuibi9631 不确定我是否了解-是的,有可能从数据库中获取文档,这只是其目的的一半。您是否尝试过查看与Mongo合作的一些示例?
接近 2 年之前 回复
dqs13465424392
dqs13465424392 使用Go和Mongo的新手,因此不确定是否能回答您的问题,但我将直接与整个收藏进行交流。我不知道有可能直接与文档进行交互。
接近 2 年之前 回复
dongliu6848
dongliu6848 您是否要从Mongo获取整个文档并在Go中使用它?如果是这样,那只是一个切片,您像其他任何切片一样使用len和range,就没有什么特别的了。
接近 2 年之前 回复

1个回答

you could get all player with specific game code like this:

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

as you defined each players has username and size of players slice is the number of username which has specific game code.


ps:
be careful and change DBname and Colloctionname whit your Database and collection name and use session of your databse connection be
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐