MongoDB进行范围查询,后台显示查询语句正常,系统无错误提示,但查询结果没有根据查询范围过滤,各种尝试都没有解决,最后通过慢查询system.profile中的记录发现是传入条件参数数据类型和MongoDB数据库设置字段数据类型不一致导致的。
有问题的查询语句:work_hour传入的查询条件参数设置为了字符串,而数据库work_hour字段设置的数据类型为double
Query: { “status” : “1”, “work_hour” : { “
g
t
e
"
:
"
1000
"
,
"
gte" : "1000", "
gte":"1000","lte” : “2000” }, “enterprise_id” : “enterprise_3” }, Fields: { }, Sort: { “create_date_time” : -1 }
调整后查询语句:调整为double后查询结果正常了
Query: { “status” : “1”, “work_hour” : { “
g
t
e
"
:
1000.0
,
"
gte" : 1000.0, "
gte":1000.0,"lte” : 2000.0 }, “enterprise_id” : “enterprise_3” }, Fields: { }, Sort: { “create_date_time” : -1 }