目录
同花顺
最像关系型数据库的非关系型数据库。
MongoDB就是墙头草。
两边都投靠,像这个,也像那个。
也就是说,只要你会MySQL,你也会MongoDB。
关系型数据库与非关系型数据库的区别
关系型数据库重结构,非关系型数据库重存储。
比如存储一篇文章,我们分别用MySQL和MongoDB进行存储。
MySQL
建表,设计字段,设计数据类型。
想要增加字段时,需要写类型。
MongoDB
MongoDB,直接存储文档,一个BSON格式的大大的字符串。
想添加字段时,直接写key-value即可。
{
"title":"标题",
"content":"内容",
"createTime":"创建时间"
}
使用场景
- 价值低。
- 数据量大。
- 写入操作频繁。
MongoDB不支持事务,如果表间关系较为紧密,不建议使用MongoDB。
MongoDB定义
百度百科定义:
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
MongoDB特点
概括的说:高性能、易部署、易使用,存储数据非常方便。
功能特点:
1、分片集群负载具有非常好的扩展性及自动转移故障能力。
2、基于内存,效率高。
3、文档结构存储,便捷的查询数据,易存储对象。
4、无模式。(与BSON相反的xml格式有模式,需要指定CSD)
MongoDB体系结构
| MongoDb | 关系型数据库Mysql |
| ----------------- | ----------------- |
| 数据库(databases) | 数据库(databases) |
| 集合(collections) | 表(table) |
| 文档(document) | 行(row) |
| 域(field) | 列(column) |
MongoDB数据类型
| 数据类型 | 描述 |
| ------------------- | ------------------------------------------------------------ |
| String | 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。 |
| Integer | 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。 |
| Boolean | 布尔值。用于存储布尔值(真/假)。 |
| Double | 双精度浮点值。用于存储浮点值。 |
| Array | 用于将数组或列表或多个值存储为一个键。 |
| Timestamp | 时间戳。记录文档修改或添加的具体时间。 |
| Object | 用于内嵌文档。 |
| Null | 用于创建空值。 |
| Date | 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 |
| Object ID | 对象 ID。用于创建文档的 ID。 |
| Binary Data | 二进制数据。用于存储二进制数据。 |
| Code | 代码类型。用于在文档中存储 JavaScript 代码。 |
| Regular expression | 正则表达式类型。用于存储正则表达式。 |
MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象**
Bson
1. 更灵活的数据格式
2. 更快的遍历速度
3. 更快的更新速度(数值类型)
4. 更高的空间占用
MongoDB常用命令
1、数据库命令
使用数据库(不存在则创建并使用):use userdb;
查看数据库:show dbs;
查看集合(先使用数据库再查看):show collections;
2、文档命令
查看文档
查看集合中的所有文档:db.集合名称.find();
根据条件查询:db.user.find({userid:‘1024’});
返回符合条件的第一条数据:db.user.findOne({userid:‘1024’});
返回指定条数的记录:db.user.find().limit(2);
模糊查询(正则表达式):db.user.find({name:/强/});
修改文档
db.user.update({userid:“1”},{$set:{age:18}});
插入文档
db.集合名称.insert(数据);
删除文档
删除全部文档:db.user.remove({})
删除单个文档:db.user.remove({age:18})