1.非关系型数据库
2.MongoDB术语/概念
SQL术语 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primiary key | 主键,MongoDB自动将_id字段设置为主键_ |
1.安装MangoDB
1.百度官网
2.配置环境变量
3.mongod --dbpath d:\data\db
在命令行中打开MongoDB:mongo
(前提是已经配置到环境变量)
4.MangoDB基础
db–查询当前数据库
show dbs–查询所有的数据库
use dbname–创建/切换数据库
db.stats()查看当前db状态
db.version()–查看db版本
db.getMongo()–查看当前数据库链接地址
db.dropDatabase()–删除当前数据库(注意b是小写的),虽然还存在,但是内容已经清除
5.MangoDB Collection集合操作
1.创建一个集合
db.createCollection('zhoujielun')
2.得到当前db下的所有集合
db.getCollectionNames()
3.得到指定名称的集合
db.getCollection("account")
4.显示当前db的所有集合状态
db.printCollectionStats()
-
编写文档之文档操作
①插入数据–insert
db.baoguo.insert([{name:'m1',release:'2020-12-05'}])
db.baoguo.insert([{name:'m1',release:'2020-12-05'},{name:'m3',release:'2020-12-05'}])
db.baoguo.insert([{name:'m4',age:25,release:'2020-12-06',publishNum:100}])
–save
db.users.save({name:'zhangsan',age:25,sex:true})
②修改数据
db.baoguo.update({name:'m1'},{$set:{release:'2020-12-04'}})
–只会修改第一个查找到的
db.baoguo.update({name:'m1'},{$inc:{publishNum:200}})
–inc(increament)
db.baoguo.update({name:'m2'},{$inc:{publishNum:200}},true)
–找不到就创建,false表示直接放弃
db.baoguo.update({name:'m2'},{$set:{publishNum:200}},true,true)
–修改查找到的所有文档
③删除数据
db.baoguo.remove({name:'m1'})
–删除找到的所有数据
④查询数据
db.baoguo.find()
常用查询案例(以下是sql语句)
(1)查询所有记录
db.userInfo.find()
select * from userInfo
(2)查询去重后数据
db.useInfo.distinct("name")
select distict name from userInfo
(3)查询age=22的记录
db.userInfo.find({age:22})
select * from userInfo where age=22
(4)查询age>22的记录
db.userInfo.find({age:{$gt:22}})
–gt表示greater than
select * from userInfo where age>22
(5)查询age<22的记录
db.userInfo.find({age:{$lt:22}})
select * from userInfo where age<22
(6)查询age>=25的记录
db.userInfo.find({age:{$gte:25}})
select * from userInfo where age>=25
(7)查询age<=25的记录
db.userInfo.find({age:{$lte:25}})
select * form userInfo where age<=25
(8)查询age>=23并且age<=26
db.userInfo.find({age:{$gte:23,$lte:26}})
(9)查询name中包含有mongo的数据
db.userInfo.find({name:/mongo/})
select * from userInfo where name like '%mongo%'
(10)查询name中以mongo开头的
db.userInfo.find({name:/^mongo/})
select * from userInfo where name like 'mongo%'
(11)查询指定列name,age的数据
db.userInfo.find({},{name:1,age:1})
–这里的1表示要被查询,0表示未被查询,默认是0
select name,age from userInfo
(12)查询指定列name,age数据,age>25
db.userInfo.find({age:{$gt:25}},{name:1,age:1})
(13)按照年龄排序
升序:
db.userInfo.find().sort({age:1})
降序:
db.userInfo.fidn().sort({age:-1})
(14)查询anme=zhangsan,age=22的数据
db.userInfo.find({name:'zhangsan',age:22})
select * from userInfo where name='zhangsan' and age=22
(15)查询前5条数据
db.userInfo.find().limit(5)
select top 5 * from userInfo
- 无论sort放在哪里都是先排序后查找
(16)查询10条以后的数据
db.userInfo.find().skip(10)
select * from userInfo where id not in (select 10 * from userInfo)
(17)查询在5-10之间的数据
db.userInfo.find().limit(10).skip(5)
(18)or与查询
db.userInfo.find({$or:[{age:22},{age:25}]})
select * from userInfo where age=22 or age = 25
(19)查询第一条数据
db.userInfo.findOne()
select top 1 * from userInfo
db.userInfo.find().limit(1)
(20)查询某个结果集的记录条数
db.userInfo.find({age:{$gte:25}}).count()
select count(*) from userInfo where age>=20