--- title: 2.1、数据查询 date: 2017-12-15 18:42:37 tags: - 数据库 - MongoDB categories: - 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 } 前者表示升序 , 后者表示降序 , 不能用其他的数字