mongoDB
mongoDB
操作数据库
- 
创建、切换 use 数据库名切换数据库,如不存在就创建一个新的数据库。 use test
- 
删除 db.dropDatabase()删除数据库 
- 
查看 
 show dbs
 查看当前的数据库
操作集合
- 查看集合
 show tables
 查看当前数据库中的集合
- 创建集合
 db.集合名.insert()
 向集合里插入文档,如集合不存在创建一个集合
- 删除集合
 db.集合名.drop()
 删除当前数据库中的集合
操作文档
- 
查看集合里的文档 
 db.集合名.find()
 查看集合中的全部文档
- 
查看第一个文档 
 db.集合名.find
- 
查看某个文档 
 db.集合名.find({查询条件})
 查询符合条件的文档
 db.集合名.find({content: /jay/})
 查询 content 包含 ‘jay’ 的文档
 db.集合名.find({content: /^jay/})
 查询 content 以 ‘jay’ 开头的文档
 db.集合名.find({content: /jay$/})
 查询 content 以 ‘jay’ 结尾的文档
- 
插入文档 
 db.集合名.insert(doc)
- 
更新文档(覆盖) 
 db.集合名.update({查询条件}, {更新内容})
 更新符合条件的文档
- 
更新文档(添加) 
 使用操作符$set
 db.集合名.update({查询条件}, {操作符: {key: value}})
 修改某个 key 的 value,如不存在就添加
 db.集合名.update({查询条件}, {$unset: {key: value}})
 删除某个 key 和 value
操作符
| 条件操作符 | 意义 | 
|---|---|
| $gt(greater than) | 大于 | 
| $gte(gt equal) | 大于等于 | 
| $lt(less than) | 小于 | 
| $lte(lt equal) | 小于等于 | 
| $eq(equal) | 等于 | 
| $ne(not eq) | 不等于 | 
| $in | 包含 | 
| $nin | 不包含 | 
| 逻辑操作符 | 意义 | 
|---|---|
| $exists | 存在 | 
| $not | 不存在 | 
| $or | 或者 | 
| $and | 和 | 
| $mod | 求模 | 
| $where | 位置 | 
| 数组操作符 | 意义 | 
|---|---|
| $size | 匹配数组长度大小 | 
| $all | 匹配数组字段中包含指定 Value 的文档 | 
常见查询
查询 content 包含 ‘jay’ 的文档
db.集合名.find({content: /jay/})
查询 content 以 ‘jay’ 开头的文档
db.集合名.find({content: /^jay/})
查询 content 以 ‘jay’ 结尾的文档
db.集合名.find({content: /jay$/})
查询 content 存在 info 属性的文档
db.集合名.find({'content.info': {exists: true}})
查询 content 包含 jay 或者 kang 的文档
db.集合名.find({content: {$in: ['jay', 'kang']}})
查询 content 不包含 jay 或者 kang 的文档
db.集合名.find({content: {$nin: ['jay', 'kang']}})
查询符合条件文档中的 name 和 age 字段
db.集合名.find({}, {name: true, age: 1})
查询符合条件文档返回中不包含 name 和 age 字段
db.集合名.find({}, {name: false, age: 0})
查询 age 大于 18 的文档
db.集合名.find({age: {$gt: 18}})
db.集合名.find({$where:'this.age > 18'})
db.集合名.find({'this.age > 18'})
查询 age 大于等于 18 且小于等于 30 的文档
db.集合名.find({age: {$gte: 18, $lte: 30}})
查询 name 不为 ‘jay’ 的文档
db.集合名.find({name: {$ne: 'jay'}})
查询 date 大于 2019 年 1 月 1 日,小于 2019 年 12 月 31 日的文档
db.集合名.find({date: {$gt: new Date(2019,0,1), $lt: new Date(2019,11,31)}})
查询文档数量
db.集合名.find().count()
查询 age 按降序排列的文档
db.集合名.find().sort({age: -1})
查询前 5 条文档
db.集合名.find().limit(5)
查询 5 条之后的文档
db.集合名.find().skip(5)
查询第 10 条到第 20 条文档
db.集合名.find().limit(20).skip(10)

