我想在 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}}},
},
}
慕盖茨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}}}}
}
- 2 回答
- 0 关注
- 196 浏览
添加回答
举报
0/150
提交
取消