热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB核心概念详解

本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。

1. NoSQL (Not Only SQL):
  NoSQL数据库,即非关系型数据库,适用于处理大规模数据存储。与传统的关系型数据库不同,NoSQL数据库具有更高的灵活性和可扩展性,能够高效地处理海量数据。

2. MongoDB:
  MongoDB 是用 C++ 编写的开源分布式文件存储数据库系统。它将数据存储为文档形式,数据结构由键值对组成。MongoDB 的文档类似于 JSON 对象,支持嵌套文档、数组及文档数组。

3. MongoDB 基本概念:

参考如下表格:
1033547-20161120161802717-2008618102.png
实例参考:
1033547-20161120161529513-154500323.png

  • 数据库

命令示例:
show dbs: 显示所有数据库的列表
> show dbs
local 0.078G
test 0.078G

db: 显示当前数据库对象或集合
> db
test
>

use: 切换到指定的数据库
> use local
switched to db local
> db
local
>

数据库名称规则:
  - 不能是空字符串
  - 不得含有空格(' ')、.、$、/、\ 和 \0(空字符)
  - 应该全部小写
  - 最多64个字节

特殊数据库:
  - admin: 系统管理数据库,用户添加到此数据库后自动继承所有数据库权限。一些特殊的服务器端命令只能从该数据库运行,如列出所有数据库或关闭服务器。
  - local: 本地数据库,不会被复制,用于存储限于本地单台服务器的任意集合。
  - config: 分片设置时使用的配置数据库,用于保存分片相关信息。

  • 文档

文档是由键值对(即BSON)组成的。
RDBMS 与 MongoDB 对应术语:
the difference

注意事项:
(1) 文档中的键值对有序。
(2) MongoDB 区分类型和大小写。
(3) MongoDB 文档不能有重复的键。
(4) 文档的键为字符串。

文档键命名规范:
(1) 键不能含有空字符。
(2) . 和 $ 有特殊意义,仅在特定情况下使用。
(3) 以下划线开头的键是保留的。

  • 集合

集合是 MongoDB 中文档的逻辑分组,类似于关系数据库中的表。
合法集合名:
  - 集合名不能是空字符串。
  - 集合名不能含有空字符,空字符表示集合名的结尾。
  - 集合名不能以 "system." 开头,这是为系统集合保留的前缀。
  - 用户创建的集合名字不能含有保留字符。

  • 元数据

数据库信息存储在集合中,使用系统命名空间:dbname.system.*
1033547-20161120161907857-1060124843.png

  • MongoDB 数据类型

1033547-20161120161824451-924145753.png

以上是对 MongoDB 基本概念的简要介绍。

来源: https://www.cnblogs.com/susantong/p/6082822.html


推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
author-avatar
yun悠然_434
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有