为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Go 在 MongoDB 中指定查询

使用 Go 在 MongoDB 中指定查询

Go
眼眸繁星 2021-09-13 09:40:45
对如何将 Javascript JSON 命令转换回 Go 会理解的东西感到困惑。好的,这是 mongo shell 中的查询:db.customers.find({acct_balance:{$gt:100000}}, {firstName: 1, surname:1, acct_balance:1, _id:0})结果 ::{“firstName”:“Susann”,“surname”:“Ulisch”,“acct_balance”:238897.45} {“firstName”:“Parker”,“surname”:“Peet”,“acct_balance”:443314.13 }现在我想在 Go 中复制该查询。c := session.DB("mydb").C("customers")query := []bson.M{}query["firstName"] = append(bson.M{"firstName": "1"})query["surname"] = append(bson.M{"surname": "1"})query["$gte"] = []bson.M{}query["$gte"] = append(query["$gte"].([]bson.M), bson.M{"acct_bal": 100000})有没有一种方法可以轻松地将来自 mongo shell 的 JSON 查询转换回您可以在 Go 中使用的内容?关于如何将 $gte, $lte 关键字重新用于 go 格式,我有些困惑。
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

Javascript 语句


db.customers.find({acct_balance:{$gt:100000}}, {firstName: 1, surname:1, acct_balance:1, _id:0})

翻译成 Go/mgo 是:


 c := db.C("customers")

 var results []Customer

 err := c.Find(bson.M{"acct_balance": bson.M{"$gt":100000}}).

       Select(bson.M{"firstName": 1, "surname":1, "acct_balance": 1}).

       All(&results)

 if err != nil {

     // handle error

 }

Javascript find方法有两个参数,查询和投影。在 mgo 中,查询由Find的单个参数指定,投影由Select的单个参数指定。


问题中的代码将查询和投影合并到 Find 的参数中。这不起作用。


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信