58 lines
2.0 KiB
Markdown
58 lines
2.0 KiB
Markdown
---
|
|
title: 2.1、数据查询
|
|
date: 2018-5-12 18:42:37
|
|
tags:
|
|
- 数据库
|
|
- MongoDB
|
|
categories:
|
|
- MongoDB
|
|
---
|
|
|
|
#### `db.集合名称.find([查询条件],[查询的字段])`
|
|
+ 查询条件是JSON格式的数据
|
|
省略表示查询该集合当中的全部数据
|
|
+ 查询的字段也是用JSON格式表示 ,字段值是非零表示包含该字段 , 0则表示排除该字段 ( 但两种方式不能同时用 )
|
|
<!-- more -->
|
|
比如 {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 }
|
|
前者表示升序 , 后者表示降序 , 不能用其他的数字 |