热门标签 | 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


推荐阅读
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文深入探讨了分布式文件系统的核心概念及其在现代数据存储解决方案中的应用,特别是针对大规模数据处理的需求。文章不仅介绍了多种流行的分布式文件系统和NoSQL数据库,还提供了选择合适系统的指导原则。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 利用 Jest 和 Supertest 实现接口测试的全面指南
    本文深入探讨了如何使用 Jest 和 Supertest 进行接口测试,通过实际案例详细解析了测试环境的搭建、测试用例的编写以及异步测试的处理方法。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 本文详细介绍了如何构建MongoDB的ReplSet复制集群,包括环境准备、配置文件设置以及初始化复制集群的具体步骤。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
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社区 版权所有