什么是MongoDB?它和传统关系型数据库有什么不同之处?

MongoDB是一种文档型数据库,属于NoSQL数据库的一种。与传统的关系型数据库有以下主要区别:

  1. 存储结构:MongoDB存储的数据类型是JSON风格的文档结构,关系型数据库数据以行和列的表格形式存储。
    例如:
    MongoDB中存储的用户数据:
{
    "_id": 1,
    "name": "John",
    "age": 30, 
    "address": {
        "street": "Main St",
        "city": "New York"
    }
}

MySQL中存储的用户数据:

CREATE TABLE users (
    id INT PRIMARY KEY, 
    name VARCHAR(20),
    age INT,  
    street VARCHAR(100), 
    city VARCHAR(50) 
);

INSERT INTO users 
VALUES (1, 'John', 30, 'Main St', 'New York');
  1. 架构:MongoDB是面向文档的,架构灵活,表的结构可以发生变化。MySQL是设计模式固定的结构,表更改时较麻烦。
  2. 关联:MongoDB通过数据内的链接或手动链接实现关联,MySQL使用主键-外键进行关联。
  3. 查询:MongoDB支持丰富的查询方式,如正则表达式,范围查询等。MySQL查询以SQL为主。
  4. 事务:MongoDB事务支持较弱,只有在WiredTiger存储引擎下才支持。MySQL具有完整的事务支持。

MongoDB作为一种文档型NoSQL数据库,具有存储结构灵活,查询语言丰富等优点。但事务支持较弱,不适合对事务要求较高的场景。