Mongodb (四十一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、概述

1.1 相关概念

1.2 特性

二、应用场景

三、安装

四、目录结构

五、默认数据库

六、 数据库操作

 6.1 库操作

6.2  文档操作

七、MongoDB数据库备份 

7.1 备份命令

7.2 恢复命令

总结



前言

       MongoDB是一种面向文档的NoSQL数据库管理系统,它采用了分布式文件存储结构,可用于存储和处理大量结构灵活的文档数据。MongoDB以JSON样式的BSON(Binary JSON)格式存储数据,支持复杂的查询和索引功能。它具有高可扩展性、高性能和高可用性,并且适用于各种应用场景,如Web应用、移动应用、物联网等。MongoDB被广泛应用于大数据、云计算和实时分析等领域。


提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON。

1.1 相关概念

    实例:系统上运行的mongodb的进程,类似于mysql实例;
    库:每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库;
    集合:由一组文档构成,类似于mysql的表;
    文档:mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录;
    主键       唯一标识一行数据

1.2 特性

            1、面向集合文档存储,适合存储json形式的数据;
            2、格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行;
            3、面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句;
            4、有索引的支持,查询效率更快;
            5、支持复制和自动故障转移;
            6、可以使用分片集群提升查询性能

二、应用场景

    游戏
    物流
    社交
    物联网
    视频直播
    大数据

三、安装


    编译安装
    RPM安装


        [mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
        yum install -y mongodb-org

[root@localhost yum.repos.d]# yum install -y mongodb-org
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.huaweicloud.com* updates: mirrors.huaweicloud.com
file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/repodata/repomd.xml"
正在尝试其它镜像。
mongodb-org-4.2                                   | 1.3 kB     00:00     
mongodb-org-4.2/7/primary                           |  25 kB   00:01     
mongodb-org-4.2                                                  210/210
正在解决依赖关系
--> 正在检查事务
---> 软件包 mongodb-org.x86_64.0.4.2.24-1.el7 将被 安装
--> 正在处理依赖关系 mongodb-org-tools = 4.2.24,它被软件包 mongodb-org-4.2.24-1.el7.x86_64 需要
--> 正在处理依赖关系 mongodb-org-mongos = 4.2.24,它被软件包 mongodb-org-4.2.24-1.el7.x86_64 需要
--> 正在处理依赖关系 mongodb-org-shell = 4.2.24,它被软件包 mongodb-org-4.2.24-1.el7.x86_64 需要
--> 正在处理依赖关系 mongodb-org-server = 4.2.24,它被软件包 mongodb-org-4.2.24-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 mongodb-org-mongos.x86_64.0.4.2.24-1.el7 将被 安装
---> 软件包 mongodb-org-server.x86_64.0.4.2.24-1.el7 将被 安装
---> 软件包 mongodb-org-shell.x86_64.0.4.2.24-1.el7 将被 安装
---> 软件包 mongodb-org-tools.x86_64.0.4.2.24-1.el7 将被 安装
--> 解决依赖关系完成依赖关系解决=========================================================================Package              架构     版本              源                 大小
=========================================================================
正在安装:mongodb-org          x86_64   4.2.24-1.el7      mongodb-org-4.2   6.2 k
为依赖而安装:mongodb-org-mongos   x86_64   4.2.24-1.el7      mongodb-org-4.2    11 Mmongodb-org-server   x86_64   4.2.24-1.el7      mongodb-org-4.2    20 Mmongodb-org-shell    x86_64   4.2.24-1.el7      mongodb-org-4.2    13 Mmongodb-org-tools    x86_64   4.2.24-1.el7      mongodb-org-4.2    26 M事务概要
=========================================================================
安装  1 软件包 (+4 依赖软件包)总下载量:70 M
安装大小:253 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/mongodb-org-4.2/packages/mongodb-org-4.2.24-1.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 058f8b6b: NOKEY
mongodb-org-4.2.24-1.el7.x86_64.rpm 的公钥尚未安装
(1/5): mongodb-org-4.2.24-1.el7.x86_64.rpm                                             | 6.2 kB  00:00:06     
(2/5): mongodb-org-mongos-4.2.24-1.el7.x86_64.rpm                                                                                                |  11 MB  00:00:15     
(3/5): mongodb-org-shell-4.2.24-1.el7.x86_64.rpm                                                                                                 |  13 MB  00:00:06     
(4/5): mongodb-org-server-4.2.24-1.el7.x86_64.rpm                                                                                                |  20 MB  00:00:17     
(5/5): mongodb-org-tools-4.2.24-1.el7.x86_64.rpm                                                                                                 |  26 MB  00:00:12     
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                    2.0 MB/s |  70 MB  00:00:34     
从 https://www.mongodb.org/static/pgp/server-4.2.asc 检索密钥
导入 GPG key 0x058F8B6B:用户ID     : "MongoDB 4.2 Release Signing Key <packaging@mongodb.com>"指纹       : e162 f504 a20c df15 827f 718d 4b7c 549a 058f 8b6b来自       : https://www.mongodb.org/static/pgp/server-4.2.asc
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装    : mongodb-org-tools-4.2.24-1.el7.x86_64                                                                                                               1/5 正在安装    : mongodb-org-mongos-4.2.24-1.el7.x86_64                                                                                                              2/5 正在安装    : mongodb-org-shell-4.2.24-1.el7.x86_64                                                                                                               3/5 正在安装    : mongodb-org-server-4.2.24-1.el7.x86_64                                                                                                              4/5 
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.正在安装    : mongodb-org-4.2.24-1.el7.x86_64                                                                                                                     5/5 验证中      : mongodb-org-server-4.2.24-1.el7.x86_64                                                                                                              1/5 验证中      : mongodb-org-4.2.24-1.el7.x86_64                                                                                                                     2/5 验证中      : mongodb-org-shell-4.2.24-1.el7.x86_64                                                                                                               3/5 验证中      : mongodb-org-mongos-4.2.24-1.el7.x86_64                                                                                                              4/5 验证中      : mongodb-org-tools-4.2.24-1.el7.x86_64                                                                                                               5/5 已安装:mongodb-org.x86_64 0:4.2.24-1.el7                                                                                                                                     作为依赖被安装:mongodb-org-mongos.x86_64 0:4.2.24-1.el7  mongodb-org-server.x86_64 0:4.2.24-1.el7  mongodb-org-shell.x86_64 0:4.2.24-1.el7  mongodb-org-tools.x86_64 0:4.2.24-1.el7 完毕!


    启动数据库
        systemctl start mongod.service

 四、目录结构

rpm -ql mongodb-org-server


        /etc/mongod.conf
            主配置文件
                port: 27017       监听端口号
                  bindIp: 127.0.0.1         监听地址


        /run/mongodb         PID文件
        /usr/bin/mongod       启动命令
        /var/lib/mongo            存储数据文件
        /var/log/mongodb            日志
    rpm -ql mongodb-org-shell


        /usr/bin/mongo     客户端命令
    rpm -ql mongodb-org-tools


        /usr/bin/mongodump          备份数据库
        /usr/bin/mongoexport         备份文档
        /usr/bin/mongoimport         恢复文档
        /usr/bin/mongorestore        恢复数据库

五、默认数据库

    admin:
        从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。
一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
    local:
        这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。
    config:
        当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。 

六、 数据库操作

 6.1 库操作

登录数据库

mongo

[root@localhost ~]# mongo
MongoDB shell version v4.2.24
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("bb8264f9-b2bf-4492-b6b1-78f88888cf4f") }
MongoDB server version: 4.2.24
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, seehttps://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forumshttps://community.mongodb.com
Server has startup warnings: 
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

查看数据库
        show databases
        show dbs


    显示当前所在数据库
        db
    切换数据库
        use  dbName


    数据库创建
        隐式创建
            不用主动创建,使用use newDB,会自动创建不存在的数据库
            只有在库中创建集合后才会保存,并使用show dbs查看到
    删除数据库
        use dbName
        db.dropdatabase()

 

6.2  文档操作

     查看集合
        show tables


    创建集合
        db.createCollection("test")

     删除集合
        db.需要删除的集合名称.drop()


    插入数据(文档)
        db.集合名称.insert({key:value})
            单行


        db.集合名称.insertmany([{key:value},{key:value},{key:value}])
            多行  mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)

  查询数据
        全集合查询
            db.集合名称.find({})

            db.集合名称.find()


        条件查询
            db.info.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...})
            key:1 显示,key:0 不显示
            当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue


        查询集合中有多少文档
            db.集合名称.count()
    删除数据
        全文删除
            db.集合名称.remove({})


        条件删除
            db.集合名称.remove({key:value}) 
    更新数据
        db.info.update({_id:"3"}, {$set:{nickname:"jack"}})


        所有满足条件的文档都进行更新

             db.info.update({userid:"1003"},{$set:{nickname:"tom"}},{multi:true})


        更新文档进行数值递增
            db.info.update({userid:"1003"},{$inc:{likenum:NumberInt(1000)}})

七、MongoDB数据库备份 

7.1 备份命令

mongodump
        选项
            -h=hostname:port
            -u=<username>
            -p=<password>
            --authenticationDatabase=<dbname>
            -d=<database>
            -o=<path>
        语法
            mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory


mongoexport
        选项
            -h=hostname:port
            -u=<username>
            -p=<password>
            --authenticationDatabase=<dbname>
            -d=<database>
            -o=<path>
        语法
            mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json

 

7.2 恢复命令

 mongorestore
        选项
            -h=hostname:port
            -u=<username>
            -p=<password>
            --authenticationDatabase=<dbname>
            -d=<database>
            --drop 当目标数据库中存在同名集合则删除再恢复
        语法
            mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile

 查看

[root@localhost ~]# mongo
MongoDB shell version v4.2.24
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("94fdfff5-03ac-4d95-a96b-f632b47a3f8b") }
MongoDB server version: 4.2.24
Server has startup warnings: 
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2023-08-14T18:44:55.142+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] 
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2023-08-14T18:44:55.143+0800 I  CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---> show dbs
admin   0.000GB
config  0.000GB
jx      0.000GB
local   0.000GB
> use jx
switched to db jx
> show tables
info1

 mongoimport
        选项
            -h=hostname:port
            -u=<username>
            -p=<password>
            --authenticationDatabase=<dbname>
            -d=<database>
            --drop 当目标数据库中存在同名集合则删除再恢复
        语法
            mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password  backupDirectory/jsonFile.json 


总结

       mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。所以,一起好好学吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/68320.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

截止到目前全量主体总数有多少?

企业主体类型 企业主体类型有很多种&#xff0c;一般我们会分为公司&#xff08;有限责任&#xff09;、合伙企业、个人独资企业、个体经营户这些类别。 今天我们按照企业&#xff0c;个体&#xff0c;组织的分类方式来看各个主体的总数。 企业&#xff1a;统一社会信用代码…

“MongoDB基础知识【超详细】

"探索MongoDB的无边之境&#xff1a;沉浸式数据库之旅" 欢迎来到MongoDB的精彩世界&#xff01;在这个博客中&#xff0c;我们将带您进入一个充满创新和无限潜力的数据库领域。无论您是开发者、数据工程师还是技术爱好者&#xff0c;MongoDB都将为您带来一场令人心动…

7.5.tensorRT高级(2)-RAII接口模式下的生产者消费者多batch实现

目录 前言1. RAII接口模式封装生产者消费者2. 问答环节总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-RAI…

仿东郊到家【8月份稳定版】同城到家/家政上门/美容/理疗/足疗/推拿/私教/瑜伽/健身

1、物料商城&#xff08;商品分类、商品管理&#xff09; 2、地图导览&#xff08;平台总销售额、人员统计、营收数据、当前开放城市&#xff09; 3、后台新增&#xff1a;技师统计&#xff08;技师概况、技师数据统计、区域分布、技师数据等&#xff0c;可视化数据一目了然&am…

Compute shader SV 理解图

本图转子&#xff1a;【Computeshader】个人总结_蒋伟博的博客-CSDN博客

C语言快速回顾(二)

前言 在Android音视频开发中&#xff0c;网上知识点过于零碎&#xff0c;自学起来难度非常大&#xff0c;不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》&#xff0c;结合我自己的工作学习经历&#xff0c;我准备写一个音视频系列blog。C/C是音视频必…

手机出现 不读卡 / 无信号时应该怎么办?

当手机屏幕亮起&#xff0c;一般在屏幕最上方都会有代表手机卡状态的显示&#xff0c;其中网络信号和读卡状态的标识&#xff0c;依旧有很多人分不太清&#xff0c;更不清楚改怎么办了。 1、当我们的手机里有两张卡时&#xff0c;则会有两个信号显示 2、信号状态一般是由短到…

【MySQL--->表的操作】

文章目录 [TOC](文章目录) 一、创建表二、查看表三、修改表四、删除表drop table 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/15227b8335364d41bd01b4b4dd83ee55.png) 一、创建表 语句格式:create table 表名(列名 类型,…)字符集 校验规则 存储引擎;字符集和校…

写给 Android 应用工程师的 Binder 原理剖析

一. 前言 这篇文章我酝酿了很久&#xff0c;参考了很多学习文档&#xff0c;读了很多源码&#xff0c;却依旧不敢下笔。生怕自己理解上还有偏差&#xff0c;对大家造成误解&#xff0c;贻笑大方。又怕自己理解不够透彻&#xff0c;无法用清晰直白的文字准确的表达出 Binder 的…

机器学习基础之《特征工程(4)—特征降维—案例》

一、探究用户对物品类别的喜好细分 1、找到用户和物品类别的关系 数据如下&#xff1a; &#xff08;1&#xff09;order_products__prior.csv&#xff1a;订单与商品信息 字段&#xff1a;order_id&#xff0c;product_id&#xff0c;add_to_cart_order&#xff0c;reordered…

开发命名规范

1项目命名规范 1、工程项目名&#xff0c;尽量想一些有意义、有传播价值的名称&#xff1b;比如星球、游戏、名人、名地名等&#xff1b;取名就跟给孩子取名一样&#xff0c;独特、有价值、有意义、好传播 2、所有的类都必须添加创建者和创建日期 3、所有代码&#xff1a;包括…

如何优雅的使用Mock Server

事出有因 昨天跟同事讨论我们在用的rap2(一个集接口编写和mock server的开源项目)和刚上线了一个easy-mock的server&#xff0c;到底哪个好用。 我们主要讨论的点有个两个&#xff1a; 接口的一致性、 编码的无侵入性。 背景 自从前后端分离后&#xff0c;完成前后端的分工…