我的收藏品名称: stu
{ "_id" : ObjectId("56a1f7a6f432505f3a6b287b"), "name" : "user1", "mark1" : "100", "mark2" : "200" }
{ "_id" : ObjectId("56a1fd3cf432505f3a6b287c"), "name" : "user2", "mark1" : "89", "mark2" : "70" }
我写的查询
> db.stu.find({"mark1":{$gt:50}}).pretty()
这是什么问题? gt,lt gte,lte
也无效。
答案 0 :(得分:0)
这是因为mark1
字段的值不是数字,您在查找查询中使用整数进行比较。要解决此问题,请将mark1
字段从字符串转换为数字值,然后比较查询才能生效。
答案 1 :(得分:0)
mark1
是一个字符串。 $gt
仅适用于数字。 Javascript比较应该可以工作:
db.stu.find("this.mark1 > 50").pretty()