对如何将Javascript JSON命令转换回某些内容感到困惑。
好的,这就是mongo shell ::
中的查询db.customers.find({acct_balance:{$gt:100000}}, {firstName: 1, surname:1, acct_balance:1, _id:0})
结果::
{" firstName" :" Susann","姓" :" Ulisch"," acct_balance" :238897.45} {" firstName" :" Parker","姓" :" 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})
有没有办法轻松将jong查询从mongo shell转换回你可以在Go中使用的东西?关于你如何使用$ gte,$ lte关键词回到go格式的东西,我有一些困惑。
答案 0 :(得分:1)
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方法有两个参数,query和projection。在mgo中,查询由Find的单个参数指定,投影由Select的单个参数指定。
问题中的代码将查询和投影合并到Find的参数中。这不起作用。