【MongoDB基础】

目录

一、概述

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.rhkb.cn/news/89773.html

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

相关文章

【MySQL--->数据库基础】

文章目录 [TOC](文章目录) 一、基本概念二、实际应用中的数据库三、mysql的架构四、mysql语句分类五、存储引擎查看 一、基本概念 mysql本质是一个CS模式的网络服务,mysql是客户端,mysqld是服务端,提供高效的数据存取方案.数据库系统简单来说是一个数据集合加上管理这个数据集…

数据库数据恢复-Oracle数据库数据恢复案例

数据库数据恢复环境&#xff1a; Oracle数据库ASM磁盘组有4块成员盘。 数据库故障&分析&#xff1a; Oracle数据库ASM磁盘组掉线 &#xff0c;ASM实例无法挂载&#xff0c;用户联系我们要求恢复oracle数据库。 数据库数据恢复工程师拿到磁盘后&#xff0c;先将所有磁盘以只…

Kafka的下载安装以及使用

一、Kafka下载 下载地址&#xff1a;https://kafka.apache.org/downloads 二、Kafka安装 因为选择下载的是 .zip 文件&#xff0c;直接跳过安装&#xff0c;一步到位。 选择在任一磁盘创建空文件夹&#xff08;不要使用中文路径&#xff09;&#xff0c;解压之后把文件夹内容…

Android:换肤框架Android-Skin-Support

gihub地址&#xff1a;https://github.com/ximsfei/Android-skin-support 样例&#xff1a; 默认&#xff1a; 更换后&#xff1a; 一、引入依赖&#xff1a; // -- 换肤依赖implementation skin.support:skin-support:4.0.5// skin-supportimplementation skin.support:ski…

9-AJAX-1入门

AJAX 目录 AJAX 概念和 axios 使用认识 URLURL 查询参数常用请求方法和数据提交HTTP协议-报文接口文档案例 - 用户登录form-serialize 插件 01.AJAX 概念和 axios 使用 目标 了解 AJAX 概念并掌握 axios 库基本使用 讲解 什么是 AJAX ? mdn 使用浏览器的 XMLHttpRequest…

kubernetes中PV和PVC

目录 一、PV、PVC简介 二、PV、PVC关系 三、创建静态PV 1.配置nfs存储 2.定义PV 3.定义PVC 4.测试访问 四、 搭建 StorageClass nfs-client-provisioner &#xff0c;实现 NFS 的动态 PV 创建 1. 配置nfs服务 2.创建 Service Account 3.使用 Deployment 来创建 NFS P…

Apache Maven简介安装及系统坏境配置eclipse配置Apache Maven---详细介绍

一&#xff0c;简介 Maven可以简化项目的构建和依赖管理&#xff0c;并提供了一种规范化和可复用的方式来管理Java项目。它广泛应用于Java开发领域&#xff0c;简单来说&#xff1a;它提供了一个简单而强大的方式来管理项目的构建、依赖关系和文档在企业级项目中被广泛采用。 1…

WebRTC音视频通话-实现iOS端调用ossrs视频通话服务

WebRTC音视频通话-实现iOS端调用ossrs视频通话服务 之前搭建ossrs服务&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 这里iOS端使用GoogleWebRTC联调ossrs实现视频通话功能。 一、iOS端调用ossrs视频通话效果图 iOS端端效果图…

最新AI创作系统ChatGPT源码V2.5.8/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成!

使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到系统&#xff01; 最新版【V2.5.8】更新&#xff1a; 新增 MJ 官方图片重新生成指令功能同步官方 Vary 指令 单张图片对比加强 Vary(Strong) | Vary(Subtle)同步官方 Zoom 指令 单张图片无限缩放 Zoom out 2x | Zoom ou…

企望制造ERP系统 RCE漏洞复现(HW0day)

0x01 产品简介 企望制造纸箱业erp系统由深知纸箱行业特点和业务流程的多位IT专家打造&#xff0c;具有国际先进的管理方式&#xff0c;将现代化的管理方式融入erp软件中&#xff0c;让企业分分钟就拥有科学的管理经验。 erp的功能包括成本核算、报价定价、订单下达、生产下单、…

【C语言实战项目】通讯录

一.了解项目功能 在本次实战项目中我们的目标是实现一个通讯录: 该通讯录可以用来存储1000个人的信息 每个人的信息包括&#xff1a;姓名、年龄、性别、住址、电话 通讯录提供功能有&#xff1a; 添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有…

统计学和机器学习之间的联系和区别

一、说明 老实说&#xff0c;我厌倦了几乎每天都在社交媒体和我的大学里听到这场辩论。通常&#xff0c;这伴随着一些模糊的陈述来解释这个问题。双方都为此感到内疚。我希望在本文结束时&#xff0c;您将对这些有些模糊的术语有更明智的立场。 二、论点 与普遍的看法相反&…

ASPICE学习笔记

文章目录 1. ASPICE是什么?2. ASPICE能干什么?2.1 过程参考模型2.2 过程评估模型参考1. ASPICE是什么? ASPICE的全称是Automotive SPICE。很明显的看出ASPICE是由SPICE发展而来。而SPICE是由国际标准化组织ISO、国际电工委员会IEC、信息技术委员会JTC1发起制定的ISO15504标…

企业数字化转型与股利分配(2007-2021年)

参照李滟&#xff08;2023&#xff09;的做法&#xff0c;本团队对来自西南大学学报&#xff08;社会科学版&#xff09;《企业数字化转型与股利分配》一文中的基准回归部分进行复刻。 企业数字化转型已成为我国经济增长的新引擎和新动力。为探究数字化转型对企业财务决策的影…

LeetCode 1289. 下降路径最小和 II:通俗易懂地讲解O(n^2) + O(1)的做法

【LetMeFly】1289.下降路径最小和 II&#xff1a;通俗易懂地讲解O(n^2) O(1)的做法 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-falling-path-sum-ii/ 给你一个 n x n 整数矩阵 arr &#xff0c;请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下…

函数(1)

1. 函数是什么&#xff1f; 数学中我们常见到函数的概念。但是你了解C语言中的函数吗&#xff1f; 维基百科中对函数的定义&#xff1a;子程序 在计算机科学中&#xff0c;子程序&#xff08;英语&#xff1a;Subroutine, procedure, function, routine, method, subprogram, …

“先锋龙颜美学”,比亚迪宋L 完成工信部申报,单双电机正式上市

根据工信部最新发布的《道路机动车辆生产企业及产品公告》&#xff08;第 374 批&#xff09;&#xff0c;我们得知比亚迪汽车公司的新款车型宋 L 已经顺利完成申报&#xff0c;并成功获得核准。这款车型将会有两个版本&#xff0c;分别是单电机和双电机版本。 此外&#xff0c…

Android T 窗口层级其二 —— 层级结构树的构建(更新中)

如何通过dump中的内容找到对应的代码&#xff1f; 我们dump窗口层级发现会有很多信息&#xff0c;adb shell dumpsys activity containers 这里我们以其中的DefaultTaskDisplayArea为例 在源码的framework目录下查找该字符串&#xff0c;找到对应的代码就可以通过打印堆栈或者…

VSCODE[配置ssh免密远程登录]

配置ssh免密远程登录 本文摘录于&#xff1a;https://blog.csdn.net/qq_44571245/article/details/123031276只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 这里要注意如下几个地方: 1.要进入.ssh目录创建文件: 2.是拷贝带"ssh-…

【LeetCode】55. 跳跃游戏 - 贪婪算法

目录标题 2023-8-10 16:27:05 55. 跳跃游戏 2023-8-10 16:27:05 class Solution {public boolean canJump(int[] nums) {int n nums.length;int arrivalLocation 0;for (int i 0; i < n; i) {if (i < arrivalLocation) {arrivalLocation Math.max(arrivalLocation,…