MongoDB的基本操作介绍及使用

MongoDB是一种面向文档的NoSQL数据库,以其高性能、高可用性和易扩展性而受到广泛关注。以下是MongoDB的基本操作介绍及使用:

一、安装与配置

安装MongoDB相对简单,可以从MongoDB官网下载对应操作系统的安装包进行安装。在安装过程中,可以选择数据库的安装目录、端口号等基础配置。安装完成后,启动mongod进程即可运行MongoDB服务器。

二、数据库操作

  1. 新建数据库
    • 语法:use DATABASE_NAME。其中use用于切换/创建数据库,若不存在则创建,否则切换到指定数据库。DATABASE_NAME为数据库名称。
    • 示例:use articledb,创建或切换到articledb数据库。
  2. 查看数据库
    • 语法:show dbs,查看全部数据库。
    • 注意事项:新建的数据库在没有任何集合(collection)或数据时,不会显示在show dbs的列表中。需要插入至少一个文档(document)到集合中,数据库才会显示在列表中。
  3. 删除数据库
    • 语法:db.dropDatabase()。其中db表示当前数据库对象,dropDatabase()用于删除当前数据库。
    • 注意事项:在执行删除操作前,应使用use命令切换到要删除的数据库,以防止误删。

三、集合操作

  1. 创建集合
    • 在MongoDB中,通常不需要手动创建集合。当插入文档时,如果集合不存在,MongoDB会自动创建该集合。
    • 手动创建集合的语法(可选):db.createCollection("collectionName", {options})。其中collectionName为集合名称,options为可选参数,可以指定集合的存储引擎、大小限制等。
  2. 查看集合
    • 语法:show collections,列出当前数据库中的所有集合。
  3. 删除集合
    • 语法:db.collectionName.drop()。其中collectionName为要删除的集合名称。

四、文档操作

  1. 插入文档
    • 语法:db.collectionName.insert(document) 或 db.collectionName.insertOne(document)(插入单个文档)或 db.collectionName.insertMany([document1, document2, ...])(插入多个文档)。
    • 示例:插入单个文档db.users.insertOne({ "username":"zhangsan", "password":"88888888" })
  2. 查询文档
    • 语法:db.collectionName.find(query, projection)。其中query为查询条件,projection为可选参数,用于指定返回的字段。
    • 示例:查询users集合中usernamezhangsan的文档db.users.find({"username":"zhangsan"})
  3. 更新文档
    • 语法:db.collectionName.updateOne(query, update, options)(更新单个文档)或 db.collectionName.updateMany(query, update, options)(更新多个文档)。
    • 示例:更新users集合中usernamezhangsan的文档,将密码改为123456db.users.updateOne({"username":"zhangsan"}, {$set:{"password":"123456"}})
  4. 删除文档
    • 语法:db.collectionName.deleteOne(query)(删除单个文档)或 db.collectionName.deleteMany(query)(删除多个文档)。
    • 示例:删除users集合中usernamezhangsan的文档:db.users.deleteOne({"username":"zhangsan"})

五、MongoDB的优点:

  1. 高度可扩展性:MongoDB采用了横向扩展的架构,可以轻松地通过添加更多的节点来扩展数据库的容量和吞吐量。这使得MongoDB非常适合处理大规模数据和高并发访问的场景。
  2. 灵活的数据模型:MongoDB是一个文档数据库,数据以类似JSON的BSON格式存储。这种灵活的数据模型使得MongoDB可以轻松地存储和处理不同结构的数据,而无需事先定义固定的模式。
  3. 高性能:MongoDB具有高度优化的读写操作,支持索引和查询优化。它还提供了内置的分片和复制功能,可以实现数据的水平扩展和高可用性。
  4. 强大的查询功能:MongoDB支持丰富的查询语法和灵活的条件查询,包括范围查询、正则表达式、地理空间查询等。这使得开发人员可以轻松地构建复杂的查询来满足各种需求。
  5. 自动分片和负载均衡:MongoDB内置了自动分片和负载均衡功能,可以在集群中自动将数据划分为多个分片,并将查询请求均匀地分发到各个分片上,从而实现数据的可扩展性和高性能。

六、MongoDB的缺点:

  1. 不支持强事务:相对于传统的关系型数据库(如MySQL、Oracle),MongoDB在某些情况下对事务的支持较弱。虽然MongoDB提供了一些原子操作和事务类似的功能,但它不支持跨多个文档的事务。
  2. 存储空间占用较大:由于MongoDB的数据存储格式比较灵活,存储的数据会占用更多的空间。
  3. 缺乏成熟的维护工具:与一些关系型数据库相比,MongoDB可能缺乏像MySQL那样成熟的维护工具。
  4. 单机可靠性较差:MongoDB在单机环境下的可靠性可能不如一些关系型数据库。

七、MongoDB与关系型数据库(如MySQL、Oracle)的显著差异:

  1. 数据模型:MongoDB使用文档模型,而MySQL和Oracle使用固定的、规范化的数据模型。MongoDB的文档模型更加灵活,可以存储不同结构的数据。
  2. 查询语言:MongoDB使用其自己的查询语言,而MySQL和Oracle使用SQL。这两种查询语言在语法和功能上有所不同。
  3. 事务支持:MongoDB的事务支持较弱,而MySQL和Oracle提供强大的ACID事务支持。
  4. 扩展性:MongoDB是一个基于分布式文件存储的数据库,可以方便地扩展到大量的数据和高并发。虽然MySQL和Oracle也可以扩展,但需要更多的工作和配置。
  5. 延迟:MongoDB对写入操作有较低的延迟,使其非常适合实时应用。而MySQL和Oracle的延迟相对较高。

 

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

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

相关文章

定个小目标之刷LeetCode热题(13)

今天来看看这道题,介绍两种解法 第一种动态规划,代码如下 class Solution {public int maxSubArray(int[] nums) {int pre 0, maxAns nums[0];for (int x : nums) {// 计算当前最大前缀和pre Math.max(pre x, x);// 更新最大前缀和maxAns Math.ma…

ansible.cfg forks参数

在Ansible的配置文件ansible.cfg中,forks参数是一个非常关键的设置,它控制了Ansible执行任务时的并发连接数,直接影响到Ansible执行 playbook 或 ad-hoc 命令时的速度和效率。 意义与作用 并发控制:当你使用Ansible来管理多台主…

【数据结构(邓俊辉)学习笔记】图04——双连通域分解

文章目录 0. 概述1 关节点与双连通域2 蛮力算法3 可行算法4 实现5 示例6 复杂度 0. 概述 学习下双连通域分解,这里略微有一点点难,这个算是DFS算法的非常非常经典的应用,解决的问题也非常非常有用。 1 关节点与双连通域 连通性很好理解&am…

rabbitmq单机安装及性能测试

RabbitMQ单机安装及性能测试 本文使用CentOS7.9安装RabbitMQ单机环境,并进行性能测试。 1. 安装RabbitMQ RabbitMQ依赖Erlang,版本配套关系参考官网:https://www.rabbitmq.com/docs/which-erlang。 本文安装RabbitMQ3.8.21,Erlang版本要求…

简单记录玩4399游戏flash插件问题

一、因谷歌浏览器默认禁止flash插件自动运行,所以玩家在使用谷歌浏览器,访问www.4399.com平台页面或者4399小游戏(flash资源)时,可能会出现加载异常的情况。今天教大家如何开启flash插件 二、下载falsh官方插件 地址:Flash Player官方下载中心-Flash中国官网 三、如果您…

ctfshow-web入门-命令执行(web30-web36)

目录 1、web30 2、web31 3、web32 4、web33 5、web34 6、web35 7、web36 命令执行,需要严格的过滤 1、web30 代码差不多,就是过滤的东西变多了: preg_match("/flag|system|php/i", $c) 这里不让用 system ,我们…

掌握Excel字符串拼接

哈喽,大家好,我是木头左! 在这个数字化时代,Excel已经成为了日常工作中不可或缺的工具。而字符串拼接作为Excel中的一项基本操作,对于提高工作效率、简化数据处理流程具有重要意义。本文将带你深入了解Excel字符串拼接…

离散数学答疑 4

知识点:什么是可结合? 举例A选项: 知识点:可交换性? 知识点:什么是阿贝尔群? 可交换->运算表中的元素关于主对角线对称 二阶子群的表达式 二阶子群作为一个群的子群,其本质是一个包含单位元…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 伐木工(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 伐木工(200分) 🌍 评测功能需要订阅专栏后私信联系清隆解…

【机器学习】Qwen2大模型原理、训练及推理部署实战

目录​​​​​​​ 一、引言 二、模型简介 2.1 Qwen2 模型概述 2.2 Qwen2 模型架构 三、训练与推理 3.1 Qwen2 模型训练 3.2 Qwen2 模型推理 四、总结 一、引言 刚刚写完【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战 ,阿里Qwen就推出了Qwen2&#x…

「前端+鸿蒙」鸿蒙应用开发-TS类-定义语法

在 TypeScript 中,类(class)是一种构建对象的结构,它允许你定义对象的属性和方法,并支持面向对象编程的基本特性,如封装、继承和多态。以下是 TypeScript 中类的定义和基本语法的快速入门指南。 TS快速入门…

MySQL之多表查询—表子查询

一、引言 上一篇博客学习了行子查询。(看弹幕:同一张表用or,不同张表用union) 下面接着学习子查询当中的最后一种——表子查询。 表子查询 1、概念 子查询返回的结果是多行多列,这种子查询称为表子查询。 2、常用的操作符 IN 3、…

46-2 护网溯源 - 企业在护网中如何溯源得分

一、企业部署蜜罐 蜜罐是什么? 蜜罐是一种网络安全工具,用于诱使攻击者前来攻击,以便收集关于攻击者行为、手段和意图的信息。 企业部署蜜罐技术旨在识别潜在的安全威胁,并采取相应的防御措施。蜜罐可以模拟各种服务和系统,如数据库服务器、Web服务器等,以便引诱攻击者。…

关于Redis中哨兵(Sentinel)

Redis Sentinel 相关名词解释 名词 逻辑结构 物理结构 主节点 Redis 主服务 一个独立的 redis-server 进程 从节点 Redis 从服务 一个独立的 redis-server 进程 Redis 数据节点 主从节点 主节点和从节点的进程 哨兵节点 监控 Redis 数据节点的节点 一个独立的 re…

Golang-编码加密-Xor(GG)

go语言环境搭建 Golang学习日志 ━━ 下载及安装_golang下载-CSDN博客 go run xxx.go go build xxx.go 首先,cs.msf生成比特流数据. 放入xor,py脚本中进行xor加密. xor.py def xor(shellcode, key):new_shellcode ""key_len len(key)# 对shellcode的每一位进行…

OJ3829大石头的搬运工

题目: 在一款名为”大石头的搬运“的游戏中,玩家需要操作一排 n 堆石头,进行 n -1 轮游戏。每一轮,玩家可以选择一堆石头,并将其移动到任意位置。在n-1轮移动结束时,要求将所有的石头移动到一起(即所有石头…

“抖动“ 与工作集

目录 "抖动" 的产生原因 "抖动" 产生的详细原因 "抖动" 的示例场景 解决"抖动" 的方法 缺页率与物理块数的关系 1. 缺页率与内存大小的关系 2. 虚拟内存技术 3. 缺页率与物理块数关系的分析 4. 示例图解 5. 管理策略 工作集…

Android平台RTMP推送|轻量级RTSP服务|GB28181接入之文字、png图片水印的精进之路

技术背景 Android平台推流模块,添加文字或png水印,不是一件稀奇的事儿,常规的做法也非常多,本文,我们主要是以大牛直播SDK水印迭代,谈谈音视频行业的精进和工匠精神。 第一代:不可动态改变的文…

计算机网络9——无线网络和移动网络2无线个人区域网 WPAN

文章目录 一、蓝牙系统二、低速 WPAN三、高速 WPAN 无线个人区域网WPAN(Wireless Personal Area Network)就是在个人工作的地方把属于个人使用的电子设备(如便携式电脑、平板电脑、便携式打印机以及蜂窝电话等)用无线技术连接起来自组网络,不需要使用接入点AP&#…

【设计模式】创建型设计模式之 建造者模式

文章目录 一、介绍定义UML 类图 二、用法1 简化复杂对象具体构建过程省略抽象的 Builder 类省略 Director 类 三、用法2 控制对象构造方法、限制参数关系Guava 中使用建造者模式构建 cache 来进行参数校验 一、介绍 定义 建造者模式,将一个复杂的对象的构建过程与…