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

我想在 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"。


BIG阳
浏览 197回答 2
2回答

慕尼黑的夜晚无繁华

错误来自您初始化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}}},            },        }

慕盖茨4494581

在这里你可以看到,通过 $Match 获取值,$and 使用 Golang MongoDBpipeline := []bson.M{bson.M{"$match": bson.M{"$and": []bson.M{bson.M{"storyID": storyID}, bson.M{"parentID": parentID}}}}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go