1、MongoDb 概念入门
什么是MongoDB
MongoDB:是一个数据库,高性能、无模式、文档性,目前nosql 中最热门的数据库,开源
产品,基于c++开发。是nosql 数据库中功能最丰富,最像关系数据库的。
特性
- 面向集合文档的存储:适合存储Bson(json 的扩展)形式的数据;
- 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
- 强大的查询语句,面向对象的查询语言,基本覆盖sql 语言所有能力;
- 完整的索引支持,支持查询计划;
- 支持复制和自动故障转移;
- 支持二进制数据及大型对象(文件)的高效存储;
- 使用分片集群提升系统扩展性;
- 使用内存映射存储引擎,把磁盘的IO 操作转换成为内存的操作;
MongoDB 使用场景
MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、
视频直播等,以下是几个实际的应用案例:
- 游戏场景,使用MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档
的形式存储,方便查询、更新
- 物流场景,使用MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以
MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
- 社交场景,使用MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地
理位置索引实现附近的人、地点等功能
- 物联网场景,使用MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信
息,并对这些信息进行多维度的分析
- 视频直播,使用MongoDB 存储用户信息、礼物信息等
不使用MongoDB 的场景
- 高度事务性系统:例如银行、财务等系统。MongoDB 对事物的支持较弱;
- 传统的商业智能应用:特定问题的数据分析,多数据实体关联,涉及到复杂的、高度优
化的查询方式;
- 使用sql 方便的时候;数据结构相对固定,使用sql 进行查询统计更加便利的时候;
2、MongoDB 应用与开发-安装
官网下载安装介质:https://www.mongodb.com/download-center,选择适当的版本,这里以linux 版本mongodb-linux-x86_64-4.0.4 为例;
https://www.mongodb.org/dl/linux/x86_64
tar zxvf mongodb-linux-x86_64-4.0.4.tgz
mv mongodb-linux-x86_64-4.0.4 mongodb
mkdir -p mongodb/{data/db,log,conf}
编辑配置文件
vi mongodb/conf/mgdb.conf
storage:
dbPath: "/soft/mongodb/data/db"
systemLog:
destination: file
path: "/soft/mongodb/log/mongodb.log"
net:
bindIp: 0.0.0.0
port: 27017
processManagement:
fork: true
setParameter:
enableLocalhostAuthBypass: false
修改环境变量
vi /etc/profile
export MONGODB_HOME=/soft/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
source /etc/profile
配置开机启动
vi /usr/lib/systemd/system/mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
RuntimeDirectory=mongodb
PIDFile=/soft/mongodb/data/db/mongod.lock
ExecStart=/soft/mongodb/bin/mongod --config /soft/mongodb/conf/mgdb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/soft/mongodb/bin/mongod --shutdown --config /soft/mongodb/conf/mgdb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启动mongodb
service mongodb stop
service mongodb start
进入mongo控制台 mongo