blog-web/source/_posts/MongoDB/2.1、数据查询.md
结发受长生 a29cff3aed 笔记迁移
2018-05-12 19:51:10 +08:00

2.0 KiB

title date tags categories
2.1、数据查询 2018-5-12 18:42:37
数据库
MongoDB
MongoDB

db.集合名称.find([查询条件],[查询的字段])

  • 查询条件是JSON格式的数据 省略表示查询该集合当中的全部数据
  • 查询的字段也是用JSON格式表示 ,字段值是非零表示包含该字段 , 0则表示排除该字段 ( 但两种方式不能同时用 )

比如 {x : 1} 表示只查询主键_id和字段x的内容 主键_id是默认被包含的 , 如果要排除可以写 { _id : 0 }

db.集合名称.findOne() 表示只返回查询结果的第一条数据

模糊查询条件

直接使用普通的json是作为精确条件 也可以使用某个范围作为模糊条件 例如 {age:{$gt:22}} 是查找age字段大于22的数据 ( 也可以应用于字符串 )

操作符 含义
$gt 大于
$lt 小于
$gte 大于等于
$lte 小于等于

字符串的模糊匹配使用类似JavaScript当中正则表达式的方式 比如/mongodb/表示包含"mongodb"子串 相当于 ...where xx like '%mongodb%' /^mongodb/表示以"mongodb"开头

逻辑运算符

  • **逻辑与 $and: **一个json中写的多个键值对本身就表示and 也可以用{$and:[{a:1},{b:2}]}表示... where a=1 and b=2
  • **逻辑或 $or: ** {$or:[{a:1},{b:2}]} 表示 ... where a=1 or b=2
  • **某个字段 存在/不存在 $exists : **{a:{$exists:true}}表示存在a字段的数据

对查询结果的处理

以下都是在db.集合名称.find(查询条件)获得的查询结果的基础上执行的函数

结果计数 .count() 对查询结果执行count函数 , 可以统计查询结果的数量

分页查询 .skip(num).limit(num) skip表示跳过前面的若干条数据 , limit是返回数据的最大数量

结果排序 .sort(排序条件) 排序条件是json的形式 { 字段名 : 1 } 或者 { 字段名 : -1 } 前者表示升序 , 后者表示降序 , 不能用其他的数字