ThinkPHP3.0完全开发手册
表达式查询采用下面的方式:
$map['字段名'] = array('表达式','查询条件');
因为MongoDb的特性,MongoModel的表达式查询和其他的数据库有所区别,增加了一些新的用法。
表达式不分大小写,支持的查询表达式和Mongo原生的查询语法对照如下:
查询表达式 |
含义 |
Mongo原生查询条件 |
neq 或者ne |
不等于 |
$ne |
lt |
小于 |
$lt |
lte 或者elt |
小于等于 |
$lte |
gt |
大于 |
$gt |
gte 或者egt |
大于等于 |
$gte |
like |
模糊查询 用MongoRegex正则模拟 |
无 |
mod |
取模运算 |
$mod |
in |
in查询 |
$in |
nin或者not in |
not in查询 |
$nin |
all |
满足所有条件 |
$all |
between |
在某个的区间 |
无 |
not between |
不在某个区间 |
无 |
exists |
字段是否存在 |
$exists |
size |
限制属性大小 |
$size |
type |
限制字段类型 |
$type |
regex |
MongoRegex正则查询 |
MongoRegex实现 |
exp |
使用MongoCode查询 |
无 |
注意,在使用like查询表达式的时候,和mysql的方式略有区别,对应关系如下:
Mysql模糊查询 |
Mongo模糊查询 |
array('like','%thinkphp%'); |
array('like','thinkphp'); |
array('like','thinkphp%'); |
array('like','^thinkphp'); |
array('like','%thinkphp'); |
array('like','thinkphp$'); |
LIKE: 同sql的LIKE
例如:$map['name'] = array('like','^thinkphp');
查询条件就变成 name like 'thinkphp%'