亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 MongoDB 檢查 Golang 中對象數組中的重復項

使用 MongoDB 檢查 Golang 中對象數組中的重復項

Go
元芳怎么了 2023-05-04 17:32:54
我需要在 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條經驗 獲得超6個贊

您可以使用$elemMatch

collection.Find(bson.M{"gamecode":?entry.GameCode},bson.M{"players":?bson.M{"$elemMatch":?bson.M{"playerid":?playerid}}}).Limit(1).Count()


查看完整回答
反對 回復 2023-05-04
  • 1 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號