我想在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"
。
答案 0 :(得分:6)
错误来自初始化array
中的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}}},
},
}
答案 1 :(得分:1)
您可以在此处看到,通过$ Match获取值,$和使用Golang MongoDB
pipeline := []bson.M{
bson.M{"$match": bson.M{"$and": []bson.M{bson.M{"storyID": storyID},
bson.M{"parentID": parentID}}}}
}