前言
在上一课,我们介绍了最基础的几种查询方式,这节课我们接着介绍一些常用的查询语句。
统计查询
统计查询使用 count 方法,语法如下:
db.COLLECTION_NAME.count(query,options)
两个参数的用途如下:
- query:查询选择条件
- options:可选,用于修改计数的额外选项
统计全部记录
db.testFile.count()
按条件统计记录
db.testFile.count({"state":"401"})
分页查询
基础语法如下,其中 limit 用于获取指定数量的数据,skip 用于跳过指定数量的数据。
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
排序查询
sort 可以对数据进行排序,通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
db.COLLECTION_NAME.find().sort({KEY:1})
例如我们对 state 进行降序排序:
db.testFile.find().sort({"state":-1})
模糊查询
MongoDB 的模糊查询是通过正则表达式的方式实现的,格式如下:
db.集合.find({字段:/正则表达式/})
例如,我要查询 content 字段中包含 ”是“ 的所有文档,可以写出下面的语句:
db.testFile.find({content:/是/})
比较查询
格式如下:
例如,我们查询 state 小于 402 的记录:
db.testFile.find({"state":{$lt:"402"}})
包含查询
包含使用 $in 操作符,不包含使用 $nin 操作符,例如我们查询 content 字段包含 401 或 405 的文档:
db.testFile.find({"state":{$in:["401","405"]}})
或者反向操作,查询 content 字段不包含 401 和 405 的文档:
db.testFile.find({"state":{$nin:["401","405"]}})
条件连接查询
如果我们的查询需要满足多个条件,可以使用 $and 操作符将条件进行关联,格式为:
$and:[{},{},{}]
例如我们查询 state 大于400 小于 406 的所有文档:
db.testFile.find({$and:[{"state":{$gt:"400"}},{"state":{$lt:"406"}}]})
如果条件之间是或者的关系,我们可以使用 $or 操作符进行关联,语法为:
$or:[{},{},{}]