我需要在 Mongo 数据库的对象数组中找到特定值的重复条目。我的结构看起来像这样: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"`}如果有新玩家加入游戏,我想检查以确保他们的用户名没有被占用。我用这种方法检查重复的游戏代码(如果count大于 1,我知道有一个游戏存在):count, err := collection.Find(bson.M{"gamecode": entry.GameCode}).Limit(1).Count()效果很好,但显然无法检查username玩家数组中对象的值。我在想我必须沿着检查数组的大小和遍历每个选项以找到重复的行做一些事情,但我没有取得任何成功。编辑我正在运行最新版本的 MongoDB 并使用 mgo.v2 驱动程序。我想要实现的流程看起来像这样:玩家 Y 想加入游戏 X。游戏 X 只能有一个“用户名”实例,但相同的用户名可以出现在其他游戏中。
1 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
您可以使用$elemMatch
collection.Find(bson.M{"gamecode": entry.GameCode},bson.M{"players": bson.M{"$elemMatch": bson.M{"playerid": playerid}}}).Limit(1).Count()
- 1 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消