mongodb - 如何将字符串转换为BSON

标签 mongodb go mongodb-query bson

我想将字符串转换为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!我无法正确使用它。

最佳答案

尝试这个:

    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)

关于mongodb - 如何将字符串转换为BSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58730911/

相关文章:

node.js - MongoDB - $merge 可在 Compass 中运行,但不能在 Node.js Lambda 中运行

go - 从 Revel 中的 ViewArg 选择模板

node.js - 如何在 MongoDB 中正确执行批量更新插入/更新

mongodb - 返回 MongoDB 中字段的实际类型

javascript - 使用 node.js 将多个文档插入到 Mongodb

database - MongoDB 按年份查找查询

javascript - MongoDB update() 函数如何同时具有参数和回调函数?

node.js - Mongodb 查找操作查询 ($gte, $lte) 不工作

dataframe - 如何编码和解码或转换对象,同时避免在 golang 中键入

mongodb - mgo 的 insert 方法是否将字段名称从大写更改为小写?