使用 Go 在 MongoDB 中指定查询

对如何将 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 格式,我有些困惑。


眼眸繁星
浏览 429回答 1
1回答

慕容3067478

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 的参数中。这不起作用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go