我正在使用golang
从mongodb查询集合。
我需要的结果是这样的:
select * from score
where math > english + 30
但是我不知道如何使用mongo脚本编写它。
mongodb:
db.score.insert({math: 60, english: 20,user_id: 6})
db.score.insert({math: 20, english: 30,user_id: 5})
db.score.insert({math: 10, english: 40,user_id: 4})
db.score.insert({math: 60, english: 10,user_id: 1})
db.score.insert({math: 60, english: 10,user_id: 2})
db.score.insert({math: 60, english: 10,user_id: 3})
,我想要的结果是比较math
> english
+ 30
并按user_id分组。
答案 0 :(得分:0)
您可以在mongodb中使用$ where运算符
答案 1 :(得分:0)
MongoDb查询如下
1. db.getCollection('score').find({"$where":function() {
return obj.math > obj.english+30;
} }).sort({"user_id":1})
2. db.getCollection('score').find({$where:"this.math >
this.english+30"}).sort({"user_id":1})
对于go mongoWrapper来说,您可以像这样简单地构建查找查询
findQ:=bson.M{"$where":"this.math >
this.english+30"}
并将findQ放在您的mongodb Wrapper函数中