MongoDB入门及应用场景
1. MongoDB介绍
MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是 像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认 为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。
2.应用场景
应对“三高”:高并发、高可用
二、MongoDB安装与部署
1. Windows下安装MongoDB
(1)下载安装包
下载地址:https://www.mongodb.com/download-center/community
(2)解压MongoDB压缩包
(3)在MongoDB目录下新建mongodb.conf文件,配置如下
dbpath=F:sowfer\mongodb\data #数据存放目录
logpath=F:sowfer\mongodb\log\mongo.log #日志存放目录
logappend=true #开启日志追加
port=27017 #设置端口号
bind_ip=0.0.0.0 #运行任何ip地址访问,去掉的话就是只有本机可以访问
4)启动MongoDB
mongod -f F:sowfer\ mongodb\ mongodb.conf
5)打开浏览器,输入:localhost:27017,显示如下效果
MongoDB 基本操作
1. MongoDB 概念解析
(1)文档、集合、数据库
对比:
数据库(database)– 数据库是一个仓库,在仓库中可以存放集合。
• 集合(collection) – 集合类似于数组,在集合中可以存放文档。
• 文档(document) – 文档数据库中的最小单位,我们存储和操作的 内容都是文档。
• 文档(document) – 类似于JS中的对象,在MongoDB中每一条数据都是一个文档
• 集合(collection) – 集合就是一组文档,也就是集合是用来存放文档的 – 集合中存储的文档可以是各种各样的,没有格式要求
• 多个文档组成集合,多个集合组成数据库
1.创建数据库
use xxx,
db 查看
show dbs 查看所以数据库
删除数据库
db.dropDatabase()
创建集合
db.createCollection(name, options)
删除集合
db.collection.drop()
查看集合
show collections
插入文档
db.COLLECTION_NAME.insert(document)
更新文档
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
删除文档
MongoDB 是 2.6 版本以后的
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
- writeConcern :(可选)抛出异常的级别。
查询文档
db.collection.find(query, projection)