对如何将 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 的参数中。这不起作用。
- 1 回答
- 0 关注
- 428 浏览
添加回答
举报
0/150
提交
取消