详细介绍, 不详请@me :nosql 数据库
目录
MongoDB在不同虚拟机系统中的安装步骤:
@Centos系统下的Mongodb安装
@ 介绍一个终端控制神器.
@介绍ubantu虚拟机中安装mongodb
@ Windows本地mongodb 的安装
二,mongodb的基本使用
@ 数据库相关的概念
1. 掌握mongodb关于数据库和集合的基础命令
2. 掌握 mongodb增删改查命令
3. 掌握mongodb高级查询命令
@ mongodb和python交互模块
@使用pymongo
一.MongoDB在不同虚拟机系统中的安装步骤:
@Centos系统下的Mongodb安装
1. 在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件
sduo touch /etc/yum.repos.d/mongodb-org.repo
2. 编辑mongodb-org.repo 文件
sudo vi /etc/yum.repos.d/mongodb-org.repo
3. 将以下内容写入该文件后, 保存退出
[mongodb-org]
name=MongoDB Repositorybaseurl=.2/x86_64/
gpgcheck=0
enabled=1保存时一定顶格,左边对其.如下
4.保存退出
esc键, shift + : 键 然后 输入 wq 回车保存.(这是Linux命令,)
5.安装 MongoDB
sudo yum install -y mongodb-org
6.启动MongoDB
sudo service mongod start
7. 设置开机启动
sudo chkconfig mongod on
8. 打开MongoDB
sudo /bin/mongo/ 或者直接输入: mongo
9. 修改mongodb配置文件,实现远程连接
sudo vi /etc/mongo.conf
将bindip 127.0.0.1 修改为0.0.0.0
@ 介绍一个终端控制神器.
链接:
提取码:love
--来自百度网盘超级会员V3的分享提取直接点击termius.exe文件自动安装.优美的终端界面,将让你无法释怀
话不多说, 直接上正题.
注册termius账号. 点击 sign up 然后输入你的邮箱,和自定义一个密码, 首先这个邮箱必须是可用的, 且是已经创建超过24小时, 要不然无法通过注册.
如果,存在账号, 点击 log in 登录
进入界面, 可以开始连接虚拟机啦.安排..兄弟们
然后, 在address框框输入, 虚拟机ip地址
下一步, 往下划,找到shh连接的username框框输入虚拟机用户,下面的possword输入密码.
最后点击右上角的 save 保存即可.
然后,点击保存好的虚拟机ip, 双击, 然后点击中间的 connect
例:
完成, 然后输入mongo测试运行一下mongodb数据库
@介绍ubantu虚拟机中安装mongodb
1. 打开虚拟机, 进入ubantu系统, 这里可能存在版本差异,只提供参考, 我的版本是16.04
2. 开启root用户
sudo passwd root
3. 开始安装mongodb,
sudo apt-get install mongodb
中间的时候输入: y , 表示yes (时间有点长,耐心等待一下)
4. 查看mongodb 数据库是否启动
pgrep mongo -1
5. 如果没有启动,参考如下命令
停止: sudo service mongodb stop
启动: sudo service mongodb start
6. 运行mongodb
mongo
7. 启动完成, 会出现一个: >
@ Windows本地mongodb 的安装
MongoDB下载地址:=nav#community
它们的安装很简单,使用默认的配置进行安装即可,安装路径中不要含有中文; 如果后续遇到服务不能正常运行的问题,请使用管理员命令行执行安装程序; 为了后续方便,可以选择将MongoDB安装路径的bin目录添加到系统的Path环境变量.
然后打开终端: 输入mongod 开启mongodb服务
表示开启状态, 切莫关闭在使用的时候
下面命令,: 是将数据保存目录放在 事先设计好的目录,
mongod --dbpath=D:\MongoDb\data\db (一般不用)
1. 重新开启一个终端窗即.
输入, mongo 或者 mongo.exe 进入mongodb数据库
到这里我们已经安装完成
介绍到这里,开始实际操作mongodb数据数据库
二,mongodb的基本使用
@ 数据库相关的概念
在一个数据库软件中可以包含多个数据仓库,在每个仓库中可以包含多个数据集合,每个数据集合可以包含多条文档(具体的数据)
术语 解释说明 database 数据库,mongoDB数据库软件中可以建立多个数据库 collection 集合,一组数据的集合,可以理解为JavaScript中的数组 document 文档,一条具体的数据,可以理解为JavaScript中的对象 field 字段,文档中的属性名称,可以理解为JavaScript中的对象属性 1. 掌握mongodb关于数据库和集合的基础命令
这里集合类似sql数据库中的表
查看当前数据库. db (没有切换数据库, 默认是test)
查看所有数据库. show dbs 或者 show databases
查看集合: show collections
切换数据库 : use 数据库的名字 例如 : use douban (这里douban为数据库的名字)
删除数据库: db.dropDatabase() 需要先用use切换到要删除的数据库上
删除集合: db.集合名称.drop()
例如: 用 use douban 切换为douban这个数据库
然后, 输入: db.dropDatabase() 进行删除数据库
创建数据库.: 无需手动创建集合:向不存在的集合中第一次添加数据时,集合会自动被创建出来
手动创建数据库:
语法: db.createCollection(name, options) (name, 为数据库的名字)
不带参创建: db.createCollection('douban') 创建douban数据库
带参创建: db.createCollection('douban', {capped: true, size: 10})
解析: capped : 默认值为false 表示不设置上限, 值为true 表示设置上限
size: 集合所占用的字节数, 当前capped 值为true时, 需要制定参数设置上限字符大小,
当文档达到上限是, 会将之前的数据覆盖. 单位: 字符
检查集合是否设定上限: db.集合名.isCapped()
2. 掌握 mongodb增删改查命令
1. 新建数据库 : use 数据库名
解析:
2. 添加集合 : db.createCollections(集合名) : 例如:db.createCollections('doubna')
创建 douban集合
3. 添加数据 : db.douban.insert({name: '张三', age:20}) ; insert(字典数据)
4.添加多条数据: db.douban.insert({name: '张三', age: 20}, {name: ''李四', age: 30})
在insert()中添加多个字典类型数据
5. 删除数据
db.douban.remove({查询条件}): 删除所有满足条件的数据
db.douban.deleteMany({查询添加}): 删除所有满足条件的数据
db.douban.deleteOne({查询条件}): 删除满足条件的第一条数据
6.修改(更新)数据:
db.douban.update({查询结果}, {$set: {修改的内容}}),
示例:
db.movie.update({name: 'zhangsan'}, {$set: {age: 20}})
注意: update 只修改满足查询条件的第一条数据.
db.douban.updateMany({查询条件}, {$set: {修改内容}})
注意: 修改满足所有的条件数据
db.douban.updateOne({查询条件}, {$set: {修改内容}})
修改满足条件的一条数据
3. 掌握mongodb高级查询命令
db.douban.find()
下面的lanshuang就是这里的douban只是数据库的名字不一样.
db.douban.find().pretty()
注意: pretty()没有实际意义, 在代码中不能使用
db.douban.find({查询条件})
且: db.douban.find({name: '张三', 'age': 20}) , 查询满足两个条件的数据
或: db.douban.find($or[{name: '张三', "age": 20}, {name: '李四'}])
非: db.info.find({name: {$ne: '张三'}}) 查询douban集合中name不等于张三的数据
@ mongodb和python交互模块
pip install pymongo 安装交互模块
@使用pymongo
导入pymongo并选择要操作的集合
数据库和集合能够自动创建
@无需权限认证的方式创建连接对象,以及集合的操作对象
from pymongo import MongoClientclient = MongoClient(host ,port) # host,添虚拟机ip地址, port 参数固定为27017.collection = client[db名][集合名]# collection = client.db名.集合名 # 与上边用法相同
@需要权限认证的方式创建连接对象以及集合操作对象
from pymongo import MongoClientfrom urllib.parse import quote_plususer = '用户名' # 账号password = '密码'host = '127.0.0.1' # 虚拟机ip地址port = 27017 # 固定端口url = 'mongodb://%S:%S@%S' % (quote_plus(user), quote_plus(password), host)""" quote_plus函数: 对url进行编码 url = mongodb://用户名:密码@虚拟机ip地址 例如: url = 'mongodb://python:possword@127.0.0.1'""" client = MongoClient(url, port=port) collection = client.db名.集合名
@insert ()添加数据
insert 可以批量的插入数据列表, 也可以插入一条数据
collection.insert({一条数据}) collection.insert([{数据one},{数据two}])
@返回插入数据的id
ret = collection.insert({'name': '张三', 'age': 20} ) print(ret)
这个就是保存的id,不同的数据保存在数据库的id不一样
这里的报错但是却执行成功了运行是什么原因的, 是因为python代码已经弃用insert这个方法
注意!!! : 虽然insert弃用,但是它可以成功插入一条或者多条数据,报红只是提醒你他弃用而已.
而是替换成 insert_one(表示插入一个数据)或者insert_many(插入多条数据)
换用insert_one不会出现报红.且这里的存入id变成了一个对象, 后面是这个对象的内存id.
@添加多条数据
list_item = [{'name': '计算机{}班'}.format(i) for i in range(10)] # 这是一个列表推导式rets = collection.insert(item_list)print(rets) for ret in rets:print(ret)"""如果这里使用insert_one将报错使用insert_many,将不能遍历,因为insert_many()这个对象是不可迭代的 """
@find_one()查看一条满足条件的数据
result = collection.find_one('name': '计算机1班')
"_id": id对象, 这里的id是不会相同的,即使数据一样
@find()查看全部数据
返回所有满足条件的结果,如果条件为空,则返回全部结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取
rets = collection.find({'age': 20}) for ret in rets:print(ret) res = collection.find({'name': '计算机10班'}) print('--'*30) for re in res: # 这里res是没有数据可以匹配的print(re)
最后的结果,可以看到却没有报错.说明find查找,即使没有数据,也是可以可迭代对象
@update()更新数据
语法: collection.updae({条件}, {'$set': {指定数据更新}}, multi=False/True, upsert=False/True)
multi参数:默认为False,表示更新一条; multi=True则更新多条; multi参数必须和$set一起使用
upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入
$set表示指定字段进行更新
@更新一条数据: 全文档覆盖:如果存在就更新, 不存在就插入
注意!!!: update也像insert一样被弃用,但是又并没有完全弃用.
存在: update_one, 和update_many
data = {"msg": '这是一条完整的数据', 'name': '哈哈哈'} collection.update_one({'name': '计算机9班'}, {'$set': data}, upsert=True)# 这里存在,所有更新
# 不存在就添加
data = {'name': '娃哈哈牛奶好喝', 'address': '南京牧场'}collection.update({'name': '计算机9班'}, {'$set': data}, upsert=True)"""这里是不存在, 所以添加"""
@更新多条数据
全文档更新, 存在就更新,不存在就插入
data = {'name': '江苏南京', 'address': '中国东南部'}collection.update_many({}, {'$set': data}, multi=True, upsert=True)"""这里的条件是 {},意思全部匹配 """
这里全部name属性替换掉了.....,添加了address属性
所以,那个全部{ }匹配, 慎用.
@delete_one() 删除一条数据:
collection.delete_one({'name': '江苏南京'})
@delete_many()删除全部数据
collection.delete_many({'name': '江苏南京'})
!!! .关于mongodb数据库操作已经全部讲完.是不是比mysql数据库简单多了
@励志语录
不要让别人举止影响你的心情, 你只需要让自己变得更优秀足以.!!!!
详细介绍, 不详请@me :nosql 数据库
目录
MongoDB在不同虚拟机系统中的安装步骤:
@Centos系统下的Mongodb安装
@ 介绍一个终端控制神器.
@介绍ubantu虚拟机中安装mongodb
@ Windows本地mongodb 的安装
二,mongodb的基本使用
@ 数据库相关的概念
1. 掌握mongodb关于数据库和集合的基础命令
2. 掌握 mongodb增删改查命令
3. 掌握mongodb高级查询命令
@ mongodb和python交互模块
@使用pymongo
一.MongoDB在不同虚拟机系统中的安装步骤:
@Centos系统下的Mongodb安装
1. 在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件
sduo touch /etc/yum.repos.d/mongodb-org.repo
2. 编辑mongodb-org.repo 文件
sudo vi /etc/yum.repos.d/mongodb-org.repo
3. 将以下内容写入该文件后, 保存退出
[mongodb-org]
name=MongoDB Repositorybaseurl=.2/x86_64/
gpgcheck=0
enabled=1保存时一定顶格,左边对其.如下
4.保存退出
esc键, shift + : 键 然后 输入 wq 回车保存.(这是Linux命令,)
5.安装 MongoDB
sudo yum install -y mongodb-org
6.启动MongoDB
sudo service mongod start
7. 设置开机启动
sudo chkconfig mongod on
8. 打开MongoDB
sudo /bin/mongo/ 或者直接输入: mongo
9. 修改mongodb配置文件,实现远程连接
sudo vi /etc/mongo.conf
将bindip 127.0.0.1 修改为0.0.0.0
@ 介绍一个终端控制神器.
链接:
提取码:love
--来自百度网盘超级会员V3的分享提取直接点击termius.exe文件自动安装.优美的终端界面,将让你无法释怀
话不多说, 直接上正题.
注册termius账号. 点击 sign up 然后输入你的邮箱,和自定义一个密码, 首先这个邮箱必须是可用的, 且是已经创建超过24小时, 要不然无法通过注册.
如果,存在账号, 点击 log in 登录
进入界面, 可以开始连接虚拟机啦.安排..兄弟们
然后, 在address框框输入, 虚拟机ip地址
下一步, 往下划,找到shh连接的username框框输入虚拟机用户,下面的possword输入密码.
最后点击右上角的 save 保存即可.
然后,点击保存好的虚拟机ip, 双击, 然后点击中间的 connect
例:
完成, 然后输入mongo测试运行一下mongodb数据库
@介绍ubantu虚拟机中安装mongodb
1. 打开虚拟机, 进入ubantu系统, 这里可能存在版本差异,只提供参考, 我的版本是16.04
2. 开启root用户
sudo passwd root
3. 开始安装mongodb,
sudo apt-get install mongodb
中间的时候输入: y , 表示yes (时间有点长,耐心等待一下)
4. 查看mongodb 数据库是否启动
pgrep mongo -1
5. 如果没有启动,参考如下命令
停止: sudo service mongodb stop
启动: sudo service mongodb start
6. 运行mongodb
mongo
7. 启动完成, 会出现一个: >
@ Windows本地mongodb 的安装
MongoDB下载地址:=nav#community
它们的安装很简单,使用默认的配置进行安装即可,安装路径中不要含有中文; 如果后续遇到服务不能正常运行的问题,请使用管理员命令行执行安装程序; 为了后续方便,可以选择将MongoDB安装路径的bin目录添加到系统的Path环境变量.
然后打开终端: 输入mongod 开启mongodb服务
表示开启状态, 切莫关闭在使用的时候
下面命令,: 是将数据保存目录放在 事先设计好的目录,
mongod --dbpath=D:\MongoDb\data\db (一般不用)
1. 重新开启一个终端窗即.
输入, mongo 或者 mongo.exe 进入mongodb数据库
到这里我们已经安装完成
介绍到这里,开始实际操作mongodb数据数据库
二,mongodb的基本使用
@ 数据库相关的概念
在一个数据库软件中可以包含多个数据仓库,在每个仓库中可以包含多个数据集合,每个数据集合可以包含多条文档(具体的数据)
术语 解释说明 database 数据库,mongoDB数据库软件中可以建立多个数据库 collection 集合,一组数据的集合,可以理解为JavaScript中的数组 document 文档,一条具体的数据,可以理解为JavaScript中的对象 field 字段,文档中的属性名称,可以理解为JavaScript中的对象属性 1. 掌握mongodb关于数据库和集合的基础命令
这里集合类似sql数据库中的表
查看当前数据库. db (没有切换数据库, 默认是test)
查看所有数据库. show dbs 或者 show databases
查看集合: show collections
切换数据库 : use 数据库的名字 例如 : use douban (这里douban为数据库的名字)
删除数据库: db.dropDatabase() 需要先用use切换到要删除的数据库上
删除集合: db.集合名称.drop()
例如: 用 use douban 切换为douban这个数据库
然后, 输入: db.dropDatabase() 进行删除数据库
创建数据库.: 无需手动创建集合:向不存在的集合中第一次添加数据时,集合会自动被创建出来
手动创建数据库:
语法: db.createCollection(name, options) (name, 为数据库的名字)
不带参创建: db.createCollection('douban') 创建douban数据库
带参创建: db.createCollection('douban', {capped: true, size: 10})
解析: capped : 默认值为false 表示不设置上限, 值为true 表示设置上限
size: 集合所占用的字节数, 当前capped 值为true时, 需要制定参数设置上限字符大小,
当文档达到上限是, 会将之前的数据覆盖. 单位: 字符
检查集合是否设定上限: db.集合名.isCapped()
2. 掌握 mongodb增删改查命令
1. 新建数据库 : use 数据库名
解析:
2. 添加集合 : db.createCollections(集合名) : 例如:db.createCollections('doubna')
创建 douban集合
3. 添加数据 : db.douban.insert({name: '张三', age:20}) ; insert(字典数据)
4.添加多条数据: db.douban.insert({name: '张三', age: 20}, {name: ''李四', age: 30})
在insert()中添加多个字典类型数据
5. 删除数据
db.douban.remove({查询条件}): 删除所有满足条件的数据
db.douban.deleteMany({查询添加}): 删除所有满足条件的数据
db.douban.deleteOne({查询条件}): 删除满足条件的第一条数据
6.修改(更新)数据:
db.douban.update({查询结果}, {$set: {修改的内容}}),
示例:
db.movie.update({name: 'zhangsan'}, {$set: {age: 20}})
注意: update 只修改满足查询条件的第一条数据.
db.douban.updateMany({查询条件}, {$set: {修改内容}})
注意: 修改满足所有的条件数据
db.douban.updateOne({查询条件}, {$set: {修改内容}})
修改满足条件的一条数据
3. 掌握mongodb高级查询命令
db.douban.find()
下面的lanshuang就是这里的douban只是数据库的名字不一样.
db.douban.find().pretty()
注意: pretty()没有实际意义, 在代码中不能使用
db.douban.find({查询条件})
且: db.douban.find({name: '张三', 'age': 20}) , 查询满足两个条件的数据
或: db.douban.find($or[{name: '张三', "age": 20}, {name: '李四'}])
非: db.info.find({name: {$ne: '张三'}}) 查询douban集合中name不等于张三的数据
@ mongodb和python交互模块
pip install pymongo 安装交互模块
@使用pymongo
导入pymongo并选择要操作的集合
数据库和集合能够自动创建
@无需权限认证的方式创建连接对象,以及集合的操作对象
from pymongo import MongoClientclient = MongoClient(host ,port) # host,添虚拟机ip地址, port 参数固定为27017.collection = client[db名][集合名]# collection = client.db名.集合名 # 与上边用法相同
@需要权限认证的方式创建连接对象以及集合操作对象
from pymongo import MongoClientfrom urllib.parse import quote_plususer = '用户名' # 账号password = '密码'host = '127.0.0.1' # 虚拟机ip地址port = 27017 # 固定端口url = 'mongodb://%S:%S@%S' % (quote_plus(user), quote_plus(password), host)""" quote_plus函数: 对url进行编码 url = mongodb://用户名:密码@虚拟机ip地址 例如: url = 'mongodb://python:possword@127.0.0.1'""" client = MongoClient(url, port=port) collection = client.db名.集合名
@insert ()添加数据
insert 可以批量的插入数据列表, 也可以插入一条数据
collection.insert({一条数据}) collection.insert([{数据one},{数据two}])
@返回插入数据的id
ret = collection.insert({'name': '张三', 'age': 20} ) print(ret)
这个就是保存的id,不同的数据保存在数据库的id不一样
这里的报错但是却执行成功了运行是什么原因的, 是因为python代码已经弃用insert这个方法
注意!!! : 虽然insert弃用,但是它可以成功插入一条或者多条数据,报红只是提醒你他弃用而已.
而是替换成 insert_one(表示插入一个数据)或者insert_many(插入多条数据)
换用insert_one不会出现报红.且这里的存入id变成了一个对象, 后面是这个对象的内存id.
@添加多条数据
list_item = [{'name': '计算机{}班'}.format(i) for i in range(10)] # 这是一个列表推导式rets = collection.insert(item_list)print(rets) for ret in rets:print(ret)"""如果这里使用insert_one将报错使用insert_many,将不能遍历,因为insert_many()这个对象是不可迭代的 """
@find_one()查看一条满足条件的数据
result = collection.find_one('name': '计算机1班')
"_id": id对象, 这里的id是不会相同的,即使数据一样
@find()查看全部数据
返回所有满足条件的结果,如果条件为空,则返回全部结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取
rets = collection.find({'age': 20}) for ret in rets:print(ret) res = collection.find({'name': '计算机10班'}) print('--'*30) for re in res: # 这里res是没有数据可以匹配的print(re)
最后的结果,可以看到却没有报错.说明find查找,即使没有数据,也是可以可迭代对象
@update()更新数据
语法: collection.updae({条件}, {'$set': {指定数据更新}}, multi=False/True, upsert=False/True)
multi参数:默认为False,表示更新一条; multi=True则更新多条; multi参数必须和$set一起使用
upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入
$set表示指定字段进行更新
@更新一条数据: 全文档覆盖:如果存在就更新, 不存在就插入
注意!!!: update也像insert一样被弃用,但是又并没有完全弃用.
存在: update_one, 和update_many
data = {"msg": '这是一条完整的数据', 'name': '哈哈哈'} collection.update_one({'name': '计算机9班'}, {'$set': data}, upsert=True)# 这里存在,所有更新
# 不存在就添加
data = {'name': '娃哈哈牛奶好喝', 'address': '南京牧场'}collection.update({'name': '计算机9班'}, {'$set': data}, upsert=True)"""这里是不存在, 所以添加"""
@更新多条数据
全文档更新, 存在就更新,不存在就插入
data = {'name': '江苏南京', 'address': '中国东南部'}collection.update_many({}, {'$set': data}, multi=True, upsert=True)"""这里的条件是 {},意思全部匹配 """
这里全部name属性替换掉了.....,添加了address属性
所以,那个全部{ }匹配, 慎用.
@delete_one() 删除一条数据:
collection.delete_one({'name': '江苏南京'})
@delete_many()删除全部数据
collection.delete_many({'name': '江苏南京'})
!!! .关于mongodb数据库操作已经全部讲完.是不是比mysql数据库简单多了
@励志语录
不要让别人举止影响你的心情, 你只需要让自己变得更优秀足以.!!!!