淘先锋技术网

首页 1 2 3 4 5 6 7

1.非关系型数据库

2.MongoDB术语/概念

SQL术语MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimiary 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()

  1. 编写文档之文档操作

    ①插入数据–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