博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Mongodb
阅读量:6626 次
发布时间:2019-06-25

本文共 4205 字,大约阅读时间需要 14 分钟。

MongoDB

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

(1) 开启一个终端

>cd MongoDB的bin目录

cd C:\mongodb\bin

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

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

(2) 在开启一个终端

>cd MongoDB的bin目录

cd C:\mongodb\bin

>mongo.exe

二 MongoDB

MongoDB将数据存储为文档,数据结构由key=>value 组成 MongoDB文档类似于json 字段值可以包含其他的文档或者是数组

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

 

三 对于库的操作

  1. 查看所有的库

    show dbs

  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

 

 

转载于:https://www.cnblogs.com/share-sunny/p/8612023.html

你可能感兴趣的文章
JEESNS数据库表设计结构
查看>>
JavaScript学习笔记:判断变量是否为undefined,判断变量和函数是否声明
查看>>
局域网访问Apache服务器
查看>>
JavaScript 闭包
查看>>
Spark算子:RDD行动Action操作(3)–aggregate、fold、lookup
查看>>
java获取当前时间前一周、前一月、前一年的时间
查看>>
话说WEB开发之页面重绘和回流
查看>>
using标识使用
查看>>
T264接口说明
查看>>
SELinux介绍
查看>>
visual C++ 用 TextOut 输出单个字符
查看>>
Rsyslog实现Nginx日志统一收集
查看>>
开源数字媒体资产管理系统:Razuna
查看>>
linux文本处理三剑客之grep家族及其相应的正则表达式使用详解
查看>>
Java中的IO操作(一)
查看>>
Python---装饰器
查看>>
s17data01
查看>>
java set and get 用法
查看>>
linux笔记1-1
查看>>
dubbo源码分析-负载均衡
查看>>