介绍
MongoDB是由C++编写,基于分布式文件存储的开源数据库管理系统。
由多节点实现负载均衡,保证服务器性能。
旨在为web应用提供可拓展的高性能数据存储方案。
将数据存储为一个文档,数据结构由键值对构成。类似json对象。字段可以包含其他文档,数据和文档数据。
MongoDB是一个介于关系数据库(mysql,oracle,sqlserver)和非关系数据库(redis,Memrcache)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库。
基本概念
默认端口:27017
collection:数据库表、集合,类似于关系型数据库中的表。
- 没有固定的结构,可以插入不同格式和不同类型的数据。
- 当第一个文档插入时,集合就会被创建。
document:数据记录行、文档
数据类型
String
Integer
Boolean
Double
Array
Timestamp
ObjectId
Date
BinaryData
数据库操作
1.创建数据库
1 | use databaseName |
2.删除数据库
1 | use databaseName |
3.删除集合
1 | db.collectionName.drop() |
4.插入数据
1 | db.collectionName.insert({"":""}) |
5.查询所有数据
1 | db.collectionName.find() |
6.更新数据
1 | db.collectionName.update({查询参数},{$set:{更新数据}}) |
7.不存在就插入,存在就替换
1 | db.collectionName.save() |
8.条件查询
小于:{“Key”:{$lt:”Value”}}
大于:{“Key”:{$gt:”Value”}}
小于等于:{“Key”:{$lte:”Value”}}
大于等于:{“Key”:{$gte:”Value”}}
不等于:{“Key”:{$ne:”Value”}}
and条件:,连接即可
or条件:
1 | db.collectionName.find({$or:[{key1:value1},{key2:value2}]}) |
分页:
1 | db.collectionName.find().limit(pageSize).skip((pageNum-1)*pageSize) |
排序:
1 | // 1:升序 -1:降序 |
索引
创建索引
1 | // key:索引字段 options: 1 升序创建 -1逆序创建 |
删除索引
1 | db.collectionName.dropIndex(key,options) |
删除所有索引
1 | db.collectionName.dropIndexs() |
应用场景
- 千万级数据存储
- 日志记录
- 搜索的历史记录
- 时刻需要修改的数据