English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MongoDB 是一个跨平台的,面向文档的数据库,可提供高性能,高可用性和易扩展性。MongoDB 致力于收集和文档的概念。
MongoDB 是一个数据库程序,MongoDB 用 C 语言编写。 ++语言编写。
免费 – 您无需为在应用程序中使用它而付出任何代价。
开源 – 开源是开放的,开源社区为 MongoDB 数据库程序的开发做出了贡献。
跨平台 – MongoDB 构建在一个平台(例如 Linux)上,并且可以在其他平台(Windows,MacOS 等)上运行,而无需对代码进行任何修改。
面向文档 – MongoDB 以 JSON 形式存储记录(如文档)。这样做有很多优点。一个显着的优点是,向数据库添加新功能(关系数据库中的列)不需要麻烦。
NoSQL(不仅是 SQL) – MongoDB 使用基于文档的数据库,其中每个文档都是具有复杂值的键。该文档值可以包含多个键值对。
数据库是用于收集的物理容器。每个数据库在文件系统上都有其自己的文件集。一台 MongoDB 服务器通常具有多个数据库。
集合是一组 MongoDB 文档。它等效于 RDBMS 表。集合存在于单个数据库中。集合不强制执行架构。集合中的文档可以具有不同的字段。通常,集合中的所有文档都具有相似或相关的目的。
文档是一组键值对。文档具有动态架构。动态模式意味着同一集合中的文档不需要具有相同的字段或结构集,并且集合文档中的公共字段可以保存不同类型的数据。
下表显示了 RDBMS 术语与 MongoDB 的关系。
关系数据库管理系统 | MongoDB |
---|---|
数据库 | 数据库 |
表 | 集合 |
元组/行 | 文档 |
列 | 字段 |
表联结 | 嵌入式文档 |
主键约束 | 主键(MongoDB 本身提供的默认键_id) |
数据库服务器和客户端 | |
mysqld / Oracle | mongod |
mysql / sqlplus | mongo |
以下示例显示了博客站点的文档结构,它只是一个逗号分隔的键值对。
{ _id: ObjectId(7df78ad8902c) title: MongoDB 概述 description: MongoDB 是一个 NoSQL 数据库 by: 基础教程 url: https://fr.oldtoolbag.com tags: ['mongodb', 'database', 'NoSQL'], likes: 100, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2011,1,20,2,15) like: 0 } { user:'user2', message: 'My second comments', dateCreated: new Date(2011,1,25,7,45) like: 5 } ] }
_idest un12Les nombres hexadécimaux des octets, ce qui garantit l'unicité de chaque document. Vous pouvez fournir un id lors de l'insertion de documents. Si vous ne fournissez pas, MongoDB fournira un id unique pour chaque document. Ce12Les octets précédents4Un octet est utilisé pour le timestamp actuel, puis3Un octet est utilisé pour l'ID de machine, puis2Un octet est utilisé pour l'ID de processus du serveur MongoDB, le reste3Un octet est une valeur d'incrémentation simple.