[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}} 數(shù)組存在第一條數(shù)據(jù) |
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.*/}});
這種寫法需要把正則表達式放在 // 之中,如果某些平臺是完全使用字符串通訊,則會導(dǎo)致轉(zhuǎn)意問題,需要原生的正則表達式寫法
正則表達式原生寫法
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的數(shù)據(jù)比較符號來查詢
db.collection.find("this.age>3");