# 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
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
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
2
3
4
← Redis ElasticSearch →