MongoDB基础

介绍

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
2
3
use databaseName
// 创建集合才会创建数据库
db.createCollection(tableName)

2.删除数据库

1
2
use databaseName
db.dropDatabase()

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
2
// 1:升序   -1:降序
db.collectionName.find().sort({key:1})

索引

创建索引

1
2
// key:索引字段  options: 1 升序创建 -1逆序创建
db.collectionName.createIndex(key,options)

删除索引

1
db.collectionName.dropIndex(key,options)

删除所有索引

1
db.collectionName.dropIndexs()

应用场景

  • 千万级数据存储
  • 日志记录
  • 搜索的历史记录
  • 时刻需要修改的数据