ThinkPHP3.0完全开发手册                                           

 

6.24.5          表达式查询

表达式查询采用下面的方式:

$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: 同sqlLIKE

例如:$map['name'] = array('like','^thinkphp');

查询条件就变成 name like 'thinkphp%'

 


NetPc