有个项目用了mongodb数据库,查询条件有and也有or,按Thinkphp官方手册,使用复合查询(_complex),getLastSql输出查询语句,发现查询条件是空的.用字符串模式查询(_string),请求字符串查询(_query)无法满足需求.估计用mongodb的用户不多,thinkphp官方对这方面支持也不够.打开thinkphp的mongodb驱动,Thinkphp/Extend/Driver/Db/DbMongo.class.php,找到protected function
百度的资料,保存下来:
在写按时间段查询的sql语句的时候 一般我们会这么写查询条件:
where date>='2010-01-01' and date='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00',再看这个条件的话,也许就会有些明白,
那就是’2010-10-1 0:00:00′ 之后的数据例如(’2010-10-1:08:25:00’)查不到,也就是说2010-10-1的数据查不到。
知道原因了可以修改查询条件为: