为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Golang 的 mgo 查询中运行 $and 运算符

如何在 Golang 的 mgo 查询中运行 $and 运算符

Go
BIG阳 2022-01-10 14:33:38
我想在 Golang 的 MongoDB 中执行以下查询check_select = bson.M{            "$and": []interface{}{                "shr_key": user_shr_key,                "id": uid,                "user_history": bson.M{"$elemMatch": bson.M{"action": "STOP", "message_id": mid}},            },        }请帮助...我收到以下错误"index must be non-negative integer constant"。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

错误来自您初始化arrayin的方式go:


....

"$and": []interface{}{

    "shr_key": user_shr_key,

....

go数组不接受string作为索引。


无论如何,为了解决您的问题,从数组初始化中删除索引并将键值对包装进去bson.M就可以了,例如:


bson.M{

            "$and": []bson.M{ // you can try this in []interface

                bson.M{"shr_key": user_shr_key},

                bson.M{"id": uid},

                bson.M{"user_history": bson.M{"$elemMatch": bson.M{"action": "STOP", "message_id": mid}}},

            },

        }


查看完整回答
反对 回复 2022-01-10
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

在这里你可以看到,通过 $Match 获取值,$and 使用 Golang MongoDB



pipeline := []bson.M{

bson.M{"$match": bson.M{"$and": []bson.M{bson.M{"storyID": storyID}, 

bson.M{"parentID": parentID}}}}

}


查看完整回答
反对 回复 2022-01-10
  • 2 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信