当前位置: 首页 >  互联网技术 >  MongoDB(二)

MongoDB(二)

导读:MongoDB概念解析.1、MongoDB vs SQL.2、数据库.一个MongoDB可以建立多个数据库,其中默认数据库为“db”,存储在data目录中.MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合、权限,不同数据库存储在不同的文件.show dbs:

MongoDB概念解析

1、MongoDB vs SQL

2、数据库

  • 一个MongoDB可以建立多个数据库,其中默认数据库为“db”,存储在data目录中

  • MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合、权限,不同数据库存储在不同的文件

  • show dbs:显示所有的数据库列表

  • db:可以显示当前数据库对象或集合

  • use:连接到指定的数据库,如果不存在则可以创建一个数据库

  • 数据库的名称要求:

    • 不能是空字符串

    • 不得含有’ ‘(空格)、.、$、/、\和\0 (空字符)

    • 应该全部小写

    • 最多为64个字节

    • 保留数据库名:admin(拥有所有数据库的权限)、local(永远不会被复制)、config(分片设置)

3、文档(Document)

  • 文档是一组键值对(BSON),MongoDB的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型

  • 注意:

    • 文档中的键值对是有序的

    • 文档中的值不仅可以使在双引号里的字符串,也可以是其他数据类型,甚至可以是另外一个文档

    • MongoDB区分类型和大小写

    • MongoDB的文档不能有重复的键

    • 文档的键是字符串,除了少数例外,键可以使用任意的UTF-8字符

  • 文档命名规范:

    • 键不能含有空字符,\0用来表示键的结尾

    • .和$符号有特别的意义,只有在特定的环境下才可以使用

    • 以下划线”_“开头的键是保留的(不是严格要求的)

4、集合

  • 集合就是MongoDB的文档组,类似于关系型数据库中的表

  • 集合存在于数据库中,集合没有固定的结构,意味着你可以对集合插入不同格式和类型的数据

  • 当第一个文档插入时,集合就会被创建

1、合法的集合名

  • 集合名称不能是空字符串

  • 集合名不能含有空字符,只能再结合结尾表示

  • 集合名称不能以“system.”开头,这是为系统集合保留的前缀

  • 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$

2、Capped collections

  • capped collections就是固定大小的集合

  • 它有很高的性能以及队列过期的特性,是高性能的自动的维护对象的插入顺序

5、元数据

  • 在MongoDB中,元数据(Metadata)是用于描述和管理数据库、集合和文档的信息。它包含了关于这些对象的属性、结构和配置的数据。

  • 元数据在MongoDB中非常重要,它提供了对数据库和集合的结构、配置和性能等方面的了解,帮助管理员和开发人员有效地管理和操作MongoDB数据库。

6、数据类型

1、常用数据类型

2、ObjectId

  • 类似于唯一主键,可以很快的去生成和排序,包含12bytes

  • 由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间

3、字符串

  • BSON 字符串都是 UTF-8 编码

4、时间戳

  • 时间戳是指特定事件发生时的标记或记录,通常以数字形式表示。它表示自某个参考点以来经过的时间量,以秒、毫秒或其他单位进行测量。

  • BSON 有一个特殊的时间戳类型用于 MongoDB 内部使用,与普通的 日期 类型不相关。 时间戳值是一个 64 位的值。

  • 时间戳的起点通常是某个特定的时刻,称为”纪元”(epoch)。最常用的纪元是1970年1月1日格林威治标准时间(UTC)的午夜。在Unix和类Unix系统中,时间戳通常表示自此纪元以来经过的秒数。例如,当前时间的时间戳是一个表示自1970年1月1日以来的秒数。

  • 时间戳还可以包含更精确的时间信息,例如毫秒级或微秒级时间戳,以提供更高的时间分辨率。在这种情况下,时间戳可能包括小数部分,表示秒的小数值。

  • 前32位是一个 time_t 值(与Unix新纪元相差的秒数),后32位是在某秒中操作的一个递增的序数

  • BSON 时间戳类型主要用于 MongoDB 内部使用。在大多数情况下的应用开发中,你可以使用 BSON 日期类型。

4、日期

  • 日期类型是有符号的, 负数表示 1970 年之前的日期。

内容
  • Unity 中的存档系统(本地存档)
    Unity 中的存档系统(本地存
    2023-12-09
    思想.在游戏过程中,玩家的背包、登录、人物系统都与数据息息相关,无论是一开始就设定好的默认数据,还是可以动态存取的数据,
  • Mybatis的工作原理
    Mybatis的工作原理
    2023-12-05
    mybatis的工作原理.mybatis基本工作原理.封装sql ->调用JDBC操作数据库 -> 返回数据封装.JDB
  • 数据分析师如何用SQL解决业务问题?
    数据分析师如何用SQL解决业务问
    2023-12-03
    本文来自问答。.提问:数据分析人员需要掌握sql到什么程度?.请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?
  • 缓存面试解析:穿透、击穿、雪崩,一致性、分布式锁、Redis过期,海量数据查找
    缓存面试解析:穿透、击穿、雪崩,
    2023-12-03
    为什么使用缓存.在程序内部使用缓存,比如使用map等数据结构作为内部缓存,可以快速获取对象。通过将经常使用的数据存储在缓
  • Unity学习笔记--数据持久化Json
    Unity学习笔记--数据持久化
    2023-12-02
    JSON相关.json是国际通用语言,可以跨平台(游戏,软件,网页,不同OS)使用,.json语法较为简单,使用更广泛。
  • 软件定制开发服务
    软件定制开发服务
    2024-01-05
    软件定制开发服务.产品功能.我们的软件定制开发服务为客户提供了一站式的解决方案,包括需求分析、设计开发、**部署和维护支
  • ***安全解决方案
    ***安全解决方案
    2024-01-10
    ***安全解决方案.产品功能.我们的服务器安全解决方案是一款专为企业服务器量身定制的安全软件,旨在保护企业服务器免受恶意
  • 电子元件芯片
    电子元件芯片
    2024-01-20
    电子元件芯片.产品功能.电子元件芯片是一种微型电子元件,其具有高性能、高可*性和低功耗的特点。它广泛应用于手机、电脑、家
  • ***远程监控系*
    ***远程监控系*
    2023-12-16
    ***远程监控系*.产品功能.我们的服务器远程监控系*是一款针对企业服务器管理的智能监控系*。它具有实时监控、远程操作、
  • 电子元件模块
    电子元件模块
    2023-12-21
    电子元件模块.我们的电子元件模块是一款专为电子爱好者和工程师设计的多功能模块。它集成了多种常用的电子元件和功能模块,可以
  • 电子元件连接器
    电子元件连接器
    2023-12-31
    电子元件连接器.产品功能.电子元件连接器是一种用于连接不同电子元件的重要组件。它可以提供可*的电气连接,从而实现各种电子
  • 人工智能应用软件
    人工智能应用软件
    2024-01-15
    人工智能应用软件产品介绍.产品功能.我们的人工智能应用软件集成了多种先进的人工智能技术,包括机器学习、自然语言处理、计算
  • ***数据备份方案
    ***数据备份方案
    2024-01-15
    ***数据备份方案.产品功能.自动化备份:定期自动备份***上的数据,无需人工干预,确保数据的及时、准确备份。.数据恢复
  • ***软件
    ***软件
    2023-12-06
    ***软件产品介绍.产品描述.我们的服务器软件是一款高性能、稳定可靠的服务器管理软件,具有强大的功能和灵活的配置,适用于
  • 移动应用开发
    移动应用开发
    2023-12-01
    移动应用开发.产品描述.移动应用开发是一种专注于为移动设备(如智能手机、平板电脑)开发应用程序的技术和流程。这些应用程序