【问题标题】:How to convert string to BSON如何将字符串转换为 BSON
【发布时间】:2020-03-02 23:34:14
【问题描述】:

我想将字符串转换为 BSON Obj 以执行 mongodb 聚合操作。所有查询都将存储在某个地方,现在我们必须将字符串转换为 BSON 操作并显示结果。

让我们说

var str = `[{"$match":{"tenantId":"TenantOne"}},{"$group":{"_id":{"referralType":"$referralType"},"value":{"$sum":1}}}]`

我要转换成

var bsonobj = bson.A{
  bson.D{{
    Key: "$match", Value : bson.D{{
      Key : "tenantId" : Value: "TenantOne"
    }}
  }},
  bson.D{{
    Key: "$group", Value : bson.D{{
      Key : "_id" : Value: bson.D{{
        Key : "referralType" : Value: "$referralType"
      }},
      Key : "value" : Value: bson.D{{
        Key : "$sum" : Value: 1
      }}

    }}
  }}
}

我试过Golang MongoDB-Driver - Bson Unmarshal!我无法正常使用它。

【问题讨论】:

  • 你为什么要解组它?使用Colleciton.Aggregate() 执行它。您可以将bsonobj 传递给它。
  • 我无法将字符串传递给聚合

标签: mongodb go mongodb-query bson


【解决方案1】:

试试这个:

    var str = `[{"$match":{"tenantId":"TenantOne"}},{"$group":{"_id":{"referralType":"$referralType"},"value":{"$sum":1}}}]`
fmt.Println(str)
var bdoc interface{}
err := bson.UnmarshalExtJSON([]byte(str),true,&bdoc)
fmt.Println(bdoc)
fmt.Println(err)

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 2021-11-26
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2021-12-28
    • 2012-02-05
    相关资源
    最近更新 更多