[TOC]
比较符
操作符 | 效果 | 例子 |
---|---|---|
gt | 大于 | {"field": {$gt: value}} |
lt | 小于 | {"field": {$lt: value}} |
gte | 大于等于 | {"field": {$gte: value}} |
lte | 小于等于 | {"field": {$lte: value}} |
exists | 存在与否 | {"member": {$exists: true}}} |
in | 包含 | {"member.age": {$in: [null], "$exists: true"}} |
ne | 不等于 | {"member.age": {$ne: "mine"}} |
逻辑符
操作符 | 效果 | 例子 |
---|---|---|
exists | 存在与否 | {"couponsCode.0": {$exists: 1}} 数组存在第一条数据 |
or | 或者 | {"$or": [{"member.age": "23"}, {"member.name": "23333"}]} |
and | 并且 | {"$and": [{"member.age": "23"}, {"member.name": "23333"}]} |
特别的 $exists: true 表示字段存在
排序 sort
操作 | 效果 | 例子 |
---|---|---|
asc | 升序 | .sort({"member.age": 1}) |
desc | 降序 | .sort({"member.age:": -1}) |
正则表达式
不匹配name以B开头的记录
db.collection.find({"name": {$not: /^B.*/}});
这种写法需要把正则表达式放在 // 之中,如果某些平台是完全使用字符串通讯,则会导致转意问题,需要原生的正则表达式写法
正则表达式原生写法
var regNumber = '/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/';
{mobile: {$regex: regNumber}}
Where 查询
不多用
e.g. 查询一条age大于3的记录
普通的查询方法:
db.collection.find({age:{$gt:3}});
$where的数据比较符号来查询
db.collection.find("this.age>3");