Golang子转换

问题描述 投票:3回答:3

我试图将一个工作的mongo查询转换为golang中的bson。我有基本的东西下来和工作,但我正在努力弄清楚如何将更高级的or查询集成到混合中。

有人有一分钟帮我转换以下查询吗?它应该有希望给我我需要的方向......不幸的是,除了评估和查询之外我还没有找到很多例子。

这适用于mongo:

db.my_collection.find({"$or": [
      {"dependencies.provider_id": "abc"}, 
      {"actions.provider_id": "abc"}]})

这适用于golang / bson:

bson.M{"dependencies.provider_id": "abc"}

我如何正确介绍or声明?

mongodb go bson
3个回答
7
投票

在你的情况下,它将是:

bson.M{"$or": []bson.M{
    {"dependencies.provider_id": "abc"},
    {"actions.provider_id": "abc"},
}}

6
投票

为了完整起见,这是我在上面评论中的最后一个问题的完整示例。更大的目标是在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"})

1
投票

像这样

package main
import "github.com/globalsign/mgo/bson"

query := make([]map[string]interface{}, 0)
query = append(query, map[string]interface{}{"dependencies.provider_id": "abc"})
query = append(query, map[string]interface{}{"actions.provider_id": "abc"})
© www.soinside.com 2019 - 2024. All rights reserved.