# MongoDB

  • 开源、无模式的文档数据库

  • 适用场景 一些数据(有很高的修改需求,如游戏中的药的数量、直播数据打赏数据等)不适合进数据库

# 一、基础CURD

1、新增

db.集合.insert/save/insertOne(文档)
1

2、删除

db.集合.remove(条件)
1

3、修改

db.集合.update(条件,{操作种类:{文档}})
1

4、导入json

mongoimport --db dbname --type json data.json
1

5、 到出json

mongoexport -d dbname -c products -o download.json
1

基础查询

  • 查询全部 db.集合.find()
  • 查询第一条 db.集合.findOne()
  • 查询指定数量 db.集合.find().limit(10) 查10条
  • 查询跳过指定数量 db.集合.find().skip(20) 跳过20条
  • 统计 db.集合.count()
  • 排序 db.集合.sort({age:1}) age升序排
  • 投影 db.集合.find(条件,{name:1,age:1}) 仅保留name和age域

条件查询

  • 基本格式 db.集合.find(条件)
  • 模糊查询 db.集合.find({域名:/正则/}) 类似sql like语句,比like强大,可以执行正则所有规则
  • 条件比较运算 db.集合.find({域名:{$gt:值}}) 例如 name>18
  • 包含查询 db.集合.find({域名:{$in:[值1,值2]}}) 类似于 sql in
  • 条件连接查询 db.集合.find({域名:{$and:[{条件1},{条件2}]}}) 类似于 sql and or
添加
db.book.insert({"name":"Java编程思想",type:"java"})
删除
db.book.remove({type:"java"})
修改
db.book.update({name:"Java编程思想"},{$set:{name:"Java编程思想(第三版)"}})  修改一条
db.book.updateMany({name:"Java编程思想"},{$set:{name:"Java编程思想(第三版)"}})  修改多条
查询
db.book.find({type:"java"})
db.getCollection('book').find({})
1
2
3
4
5
6
7
8
9
10

查看数据库 show dbs db

切换数据库 use dbname

doc = {"title":"A","desc":"One"}
db.some.insertOne(doc);
1
2

查看表 show collections

切换到指定数据库 use dbname

db.productions.find()
db.productions.find("type":"service")
db.productions.find("type":"service").pretty() 
db.productions.find({"type":"service"},{"name":"张三"})
1
2
3
4