最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

详细介绍, 不详请@me :nosql 数据库

IT圈 admin 14浏览 0评论

详细介绍, 不详请@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 Repository

                baseurl=.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 Repository

                baseurl=.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数据库简单多了

@励志语录

        不要让别人举止影响你的心情, 你只需要让自己变得更优秀足以.!!!!

发布评论

评论列表 (0)

  1. 暂无评论