MongoDB是一种文档型数据库,属于NoSQL数据库的一种。与传统的关系型数据库有以下主要区别:
- 存储结构: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');
- 架构:MongoDB是面向文档的,架构灵活,表的结构可以发生变化。MySQL是设计模式固定的结构,表更改时较麻烦。
- 关联:MongoDB通过数据内的链接或手动链接实现关联,MySQL使用主键-外键进行关联。
- 查询:MongoDB支持丰富的查询方式,如正则表达式,范围查询等。MySQL查询以SQL为主。
- 事务:MongoDB事务支持较弱,只有在WiredTiger存储引擎下才支持。MySQL具有完整的事务支持。
MongoDB作为一种文档型NoSQL数据库,具有存储结构灵活,查询语言丰富等优点。但事务支持较弱,不适合对事务要求较高的场景。