我试图将一个工作的mongo查询转换为golang中的bson.我有基本的东西下来和工作,但我正在努力弄清楚如何将更高级的or查询集成到混合中.
有人有一分钟帮我转换以下查询吗?它应该有希望给我我需要的方向......不幸的是,除了评估和查询之外,我还没有找到很多例子.
这适用于mongo:
db.my_collection.find({"$or": [
{"dependencies.provider_id": "abc"},
{"actions.provider_id": "abc"}]})
Run Code Online (Sandbox Code Playgroud)
这适用于golang/bson:
bson.M{"dependencies.provider_id": "abc"}
Run Code Online (Sandbox Code Playgroud)
我该如何正确介绍or声明?
在你的情况下,它将是:
bson.M{"$or": []bson.M{
{"dependencies.provider_id": "abc"},
{"actions.provider_id": "abc"},
}}
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这是我在上面评论中的最后一个问题的完整示例.更大的目标是在go中动态构建bson查询.非常感谢ANisus:
query := bson.M{}
query["origin"] = "test"
query["$or"] = []bson.M{}
query["$or"] = append(query["$or"].([]bson.M), bson.M{"abc": "1"})
query["$or"] = append(query["$or"].([]bson.M), bson.M{"def": "2"})
Run Code Online (Sandbox Code Playgroud)