关于Mongodb

MongoDB

一 开启MongoDB服务 并进入数据库

(1) 开启一个终端

>cd MongoDB的bin目录python

cd C:\mongodb\binmongodb

>mongod.exe --dbpath=数据库存放的路径数据库

mongod.exe --dbpath=C:\Users\xlg\PycharmProjects\pythonsh1702\day18\dbjson

(2) 在开启一个终端

>cd MongoDB的bin目录数组

cd C:\mongodb\bin数据结构

>mongo.exe函数

二 MongoDB

MongoDB将数据存储为文档,数据结构由key=>value 组成 MongoDB文档相似于json 字段值能够包含其余的文档或者是数组spa

存储的概念(区别)
SQL术语/概念 MongoDB的术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 行/文档
column field 数据字段/域
primary key primary key 主键索引/MongoDB自动将_id设置为主键索引

 

三 对于库的操做

  1. 查看全部的库rest

    show dbscode

  2. 选择数据库(库存在就选择 不存在就建立)use 库名

    当不存在的库建立之后 使用show dbs查看不到的 可是 将当前的库里面建立一个集合当前的库就会显示出来

  3. 查看当前所在的数据库

    db.getName()

注意:

MongoDB 严格区分大小写

四 对于集合的操做

  1. 建立集合

    db.createCollection('集合名称')

    db.createCollection('user') #建立一个叫user的集合

  2. 查看全部的集合

    show conllections

  3. 删除集合

    db.集合名.drop()

    db.user.drop() #删除user集合

五 INSERT/SAVE 文档的添加

(1) insert 添加文档(添加一条)

db.集合名.insert(文档)

db.user.insert({"name":"张三"})

(2) 插入多条数据

db.集合名.insert([文档1,文档2...])

db.user.insert([{name:"李四",age:20,hobby:"写代码"},{age:18,name:"王五"}])

注意:

若是添加多条文档的时候 []忘记添加 则默认添加第一条文档

(3) save 添加数据

db.user.save({ "name" : "王六" })

(4) save 修改数据(更确切的说 文档的覆盖)

db.user.save({ "_id" : ObjectId("5a1fb5eb9c1f997934c661d4"), "name" : "王六" })

3.2新版本的建议添加

db.collection.insertOne() 添加一条文档

db.collection.insertMany() 添加多条文档

多条文档依然使用[]来添加 不然报错

 

六 UPDATE修改

 
 
 
 
 
db.collection.update(
query,条件
update, 
修改的操做符:
1.$inc 累加修改
2.$set 直接修改
{
 upsert:boolean,#true 做为新数据插入 默认FALSE
 multi:boolean #true,false #true修改所有   默认是FALSE 只修改一条 
}
)
 
主体结构:

db。collection.update({条件},{$set/$inc:{key:value}})

db.user.update({name:"张三"},{$inc:{age:2}})

upsert 的操做

db.user.update({name:"张三四"},{$set:{age:2}},{upsert:true})

multi 的操做

db.user.update({name:"张三"},{$set:{age:12}},{multi:true})

upsert 和 multi的组合写法

db.user.update({name:"张三"},{$set:{age:12}},true/false,true/false)

3.2之后 建议

db.collection.updateOne() 只修改一条

db.collection.updateMany() 修改多条

 

七 FIND查询

(1) find 查询全部

db.collection.find() #默认查询全部

db.collection.find({条件},{field:0/1}) #要求那些字段显示或者不显示

0 表明除了它之外的field都显示

1 表明只显示当前的field

错误的写法
 
 
 
 
 
db.user.find({},{name:1,age:0})
 
正确的写法
 
 
 
 
 
db.user.find({},{name:1,_id:0})
 
(2) findOne 查看一条数据

db.collection.findOne({条件},{field:1/0})

(3) count 统计条数

db.collection.find({条件},{field:0/1}).count()

(4) pretty 展开查看

db.user.find().pretty()

(5) 查询条件的操做符
 
 
 
 
 
1 $gt >     db.collection.find({age:{$gt:10}})
2 $gte >=     db.collection.find({age:{$gte:10}})
3 $lt <     db.collection.find({age:{$lt:10}})
4 $lte <=     db.collection.find({age:{$lte:10}})
5 $ne   !=     db.collection.find({age:{$ne:10}})
6 {field:值}     db.collection.find({age:10})
7 使用id来查询 ObjectId("5a1fb8b29c1f997934c661d9")
8 /数据/   模糊查询   db.collection.find({name://})
9 /^数据/ 以...做为开头   db.collection.find({name:/^/})
10 /数据$/ 以...结尾   db.collection.find({name:/张$/})
11 $in   在...以内  db.collection.find({age:{$in:[10,20,30]}})
12 $nin   不在...以内  db.collection.find({age:{$nin:[10,20,30]}})
 
(6) and查询

db.collection.find({key1:val1,key2:val2......})

db.user.find({name:/张/,age:{$gte:10,$lte:20}})

错误的写法

db.user.find({name:"张三",name:"李四"}) #前面的name被后面的覆盖了

(7) or 的查询

db.collection.find({$or:[{条件1,条件2...}]})

db.user.find({$or:[{name:"张三"},{name:"李四"}]}) #查询name为张三或者李四的全部文档

#查询name为李四 年龄大于10 或 小于20

(8) and 和 or的组合写法

db.collection.find({条件1,条件2..,$or:[{条件1},{条件2}...]})

db.user.find({name:"张三",$or:[{age:{$gte:10}},{age:{$lte:20}}]}) #查询name为张三 而且 年龄为大于等于10或者小于等于20

(9) limit 取值

db.collection.find().limit(num)

db.user.find().limit(3) #从0开始去三条数据

(10) skip 跳过几条数据

db.collection.find().skip(num) #查询数据 跳过num条

一般和limit配合使用

db.collection.find().skip(num).limit(num) #跳过几条数据取几条

(11) sort 排序

db.collection.find().sort({age:1/-1}) #查询数据升序或者降序

db.user.find().sort({age:-1}).limit(1) #取出年龄最大的一条文档

 

八 REMOVE删除

db.collection.remove({条件},1)

(1) 默认删除全部

db.collection.remove({条件}) #删除全部匹配到的文档

(2) 只删除一条文档

删除一条

db.user.remove({name:"张三"},1)

db.user.remove({name:"张三"},{justOne:true})

(3) 删除全部文档

db.collection.remove({})

3.2版本之后的建议删除的函数

db.collection.deleteOne()

db.collection.deleteMany()

 

九 删除数据库

删除以前最好去use一下(肯定删除你当前所在的数据库)

数据库的退出

exit

十 数据库的备份和恢复

备份:

先启动MongoDB的服务

打开一个新的终端

cd ->MongoDB的bin目录下

mongodump

恢复

先启动MongoDB的服务

mongod.exe --dbpath=新的数据库的路径

打开一个新的终端

cd ->MongoDB的bin目录下

mongorestore

相关文章
相关标签/搜索