【MongoDB基础】

news2024/12/26 21:05:43

目录

一、概述

1.概念

2.相关

2.1 实例

2.2 库

2.3  集合

2.4  文档

2.5 主键

3.特性

4,应用场景

二、安装

1.RPM安装

2.启动数据库

三、目录结构

1.rpm -ql mongodb-org-server

2.rpm -ql mongodb-org-shell

3.rpm -ql mongodb-org-tools

四、默认数据库

1.admin

2.local

3.config

五、数据库操作

1.库操作

1.1 查看数据库

1.2 显示当前所在数据库

1.3 切换数据库

1.4 数据库创建

1.5 删除数据库

2.文档操作

2.1 查看集合

2.2 创建集合

2.3 删除集合

2.4 插入数据(文档)

2.5 查询数据

2.6 删除数据

2.7 更新数据

六、MongoDB数据库备份

1.备份命令

1.1 mongodump

1.2 mongoexport

2.恢复命令

2.1 mongorestore

2.2 mongoimport


一、概述

1.概念

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

2.相关

2.1 实例

系统上运行的mongodb的进程,类似于mysql实例。

2.2 库

每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库。

2.3  集合

由一组文档构成,类似于mysql的表。

2.4  文档

mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录。

2.5 主键

唯一标识一行数据

3.特性

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

4,应用场景

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

二、安装

1.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

2.启动数据库

systemctl start mongod.service

三、目录结构

1.rpm -ql mongodb-org-server

/etc/mongod.conf        主配置文件
/run/mongodb        PID文件
/usr/bin/mongod        启动命令
/var/lib/mongo        存储数据文件
/var/log/mongodb        日志

:主配置文件中监听端口 port: 27017,监听地址bindIp: 127.0.0.1

2.rpm -ql mongodb-org-shell

/usr/bin/mongo        客户端命令

3.rpm -ql mongodb-org-tools

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

四、默认数据库

1.admin

从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。
一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

2.local

这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。

3.config

当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

五、数据库操作

1.库操作

1.1 查看数据库

show databases
show dbs

1.2 显示当前所在数据库

db

1.3 切换数据库

use  dbName

1.4 数据库创建

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

1.5 删除数据库

use dbName
db.dropdatabase()

2.文档操作

2.1 查看集合

show tables

2.2 创建集合

db.createCollection("test")

2.3 删除集合

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

2.4 插入数据(文档)

单行
                   db.集合名称.insert({key:value})

多行
                   db.集合名称.insertmany([{key:value},{key:value},{key:value}])        

:mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)

2.5 查询数据

全集合查询
                   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()

2.6 删除数据

全文删除:db.集合名称.remove({})
条件删除:db.集合名称.remove({key:value})

 

2.7 更新数据

db.test.update({''name'':"li"}, {$set:{''gender'':"helicopter"}})

所有满足条件的文档都进行更新:
                    db.info.update({userid:"1003"},{$set:{nickname:"tom"}},{multi:true})
更新文档进行数值更替:
                    db.info.update({userid:"1003"},{$inc:{likenum:NumberInt(1000)}})

六、MongoDB数据库备份

1.备份命令

1.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

1.2 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

2.恢复命令

2.1 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

2.2 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS 写个清除浮动,怎么还蹦出个 hasLayout? *zoom?

&#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; &#x1f5a5;️ Node专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ TS知识总结&#xff1a;十万字TS知识点总结 &#x1f449; 你的一键三连是我更新的最大动力❤️&#xff01;…

【LeetCode】《LeetCode 101》第十一章:妙用数据结构

文章目录 11.1 C STL11.2 数组448. 找到所有数组中消失的数字&#xff08;简单&#xff09;48. 旋转图像&#xff08;中等&#xff09;74. 搜索二维矩阵&#xff08;中等&#xff09;240. 搜索二维矩阵 II&#xff08;中等&#xff09;769. 最多能完成排序的块&#xff08;中等…

使用IDA查看汇编代码,结合安卓系统生成的Tombstone文件,分析安卓app程序崩溃问题

目录 1、IDA工具介绍 2、产品及问题场景描述 3、查看Tombstone文件 4、使用IDA打开.so动态库文件&#xff0c;查看汇编代码的上下文&#xff0c;到C源码中定位发生崩溃的那行代码 4.1、使用IDA打开.so动态库文件 4.2、切换到Text View文本视图模式 4.3、根据相对于函数的…

【Linux进程篇】环境变量

【Linux进程篇】环境变量 目录 【Linux进程篇】环境变量基本概念常见环境变量查看环境变量方法测试PATH测试HOME测试SHELL和环境变量相关的命令环境变量的组织方式通过代码如何获取环境变量命令行参数命令行第三个参数通过第三方变量environ获取 本地变量通过系统调用获取或设置…

【Sklearn】基于K邻近算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于K邻近算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理模型原理&#xff1a;数学模型&#xff1a; 2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 K最近邻&#xff08;K-Nearest Neighbors&#xff0c…

C++入门篇8---vector

vecctor是动态顺序表 一、了解vector的相关接口及其功能 1.构造函数相关接口 函数声明功能介绍vector()无参构造vector(size_type n,const value_type& valvalue_type())构造并初始化n个valvector(const value& x)拷贝构造vector(InputIterator first, InputIterato…

ad+硬件每日学习十个知识点(33)23.8.13 (导出gerber)

文章目录 1.第一次制造输出2.第二次制造输出3.第三次制造输出 1.第一次制造输出 答&#xff1a; 2.第二次制造输出 答&#xff1a; 3.第三次制造输出 答&#xff1a;

企业计算机服务器中了Devos勒索病毒怎么办,勒索病毒解密

社会在发展&#xff0c;科技在进步&#xff0c;企业的生产也得到了很大改善&#xff0c;但是随着网络技术的不断发展&#xff0c;越来越多的企业遭到的网络安全威胁开始增多&#xff0c;其中较为明显的就是勒索病毒攻击。预防勒索病毒攻击成为日常生活中不可或缺的一部分工作。…

Python—行命令搭建HTTP服务器并外网访问本地SQL Server数据库【无公网IP内网穿透】

在强者的眼中&#xff0c;没有最好&#xff0c;只有更好。我们是移动开发领域的优质创作者&#xff0c;同时也是阿里云专家博主。 ✨ 关注我们的主页&#xff0c;探索iOS开发的无限可能&#xff01; &#x1f525;我们与您分享最新的技术洞察和实战经验&#xff0c;助您在移动…

MySQL中事务特性以及隔离机制

目录 一、什么是事务 二、事务特性——即ACID特性 三、事务的隔离级别 1、脏读 2、不可重复读 3、幻读 Read uncommitted&#xff1a; Read committed: Repeatable read: Serializable&#xff1a; 一、什么是事务 事务&#xff08;Transaction&#xff09;——一个最…

小程序用户隐私新规,微信小程序开发者需满足新要求

微信公众平台运营中心最新公告指出&#xff0c;从2023年9月15日开始&#xff0c;涉及处理用户个人信息的小程序开发者需要满足新要求。开发者须主动同步用户同意并遵守小程序的隐私保护指引和其他信息处理规则&#xff0c;方可调用微信提供的隐私接口。 并且&#xff0c;在确认…

第四章,向量组,1-向量组与线性组合、线性表示

第四章&#xff0c;向量组&#xff0c;1-向量组与线性组合、线性表示 向量方程向量与向量组向量向量组 线性组合与线性表示线性组合 线性表示定理定义 多表多&#xff08;单向&#xff09;定理推论 定义 等价&#xff08;多表多&#xff1a;双向&#xff09; 知识回顾 玩转线性…

用免费Leangoo敏捷看板工具进行可视化的缺陷跟踪管理

用Leangoo敏捷看板进行可视化的缺陷跟踪管理 缺陷管理通常关注如下几个方面&#xff1a; 1. 缺陷的处理速度 2. 缺陷处理的状态 3. 缺陷的分布 4. 缺陷产生的原因 使用Leangoo敏捷看板我们可以对缺陷进行可视化的管理&#xff0c;方便我们对缺陷的处理进展、负责人、当前…

转行软件测试四个月学习,第一次面试经过分享

我是去年上半年从销售行业转行到测试的&#xff0c;从销售公司辞职之后选择去培训班培训软件测试&#xff0c;经历了四个月左右的培训&#xff0c;在培训班结课前两周就开始投简历了&#xff0c;在结课的时候顺利拿到了offer。在新的公司从事软件测试工作已经将近半年有余&…

云渲染效果不对?云渲染前的四个细节表明你的问题出在这里!

云渲染针对3D渲染行业&#xff0c;帮助本地电脑解决渲染慢的问题&#xff0c;大幅提高设计师的工作效率。但小编发现&#xff0c;有不少小伙伴在使用云渲染时&#xff0c;出现了渲染效果不对或丢失的问题&#xff0c;根据小伙伴们的问题和我们创意云云渲染平台给出的解决方案&a…

vue之动态表单(优化)

代码资源在这儿 ↑ vue之动态表单优化 vue2js动态表单优化vue3ts动态表单优化 vue2js动态表单优化 效果图 目录结构 五个文件的完整代码: 以下是App.vue <template><div><router-view></router-view><Formpage /></div> </templa…

【数据结构】栈与队列

1 栈 1.1 栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出 LIFO (Last In First Out) 的原则。 压栈&#xff1a;栈…

java中右移>>和无符号右移>>>的区别

public static void main(String[] args) {byte[] dest new byte[2];dest[0] 0x15; //0001 0101dest[1] (byte) 0xfb;//1111 1011System.out.println((dest[0] >> 4) & 0xff);//右移 应该是0000 0001 十进制结果显示1 结果也是1&#xff0c;正确System.out.printl…

【小练习】交互式网格自定义增删改错误记录及解决(进行中)

经过之前的学习&#xff0c;已经能创建简单的交互式网格并设置自定义增删改按钮&#xff0c;但是实现上还是存在一些问题&#xff0c;来完善优化一下。 首先是修改&#xff0c;正常修改都会弹出修改框&#xff0c;里面是之前存储的信息&#xff0c;根据实际需要对其进行修改&a…

小程序多图片组合

目录 子组件 index.js 子组件 index.wxml 子组件 index.wxss 父组件引用&#xff1a; 子组件&#xff1a;preview-image 子组件 index.js Component({properties: {previewData: {type: Array,default: [],observer: function (newVal, oldVal) {console.log(newVal, ol…