MongoDB 安装
- 进入mongoDB shell命令:
./mongo
- 启动和关闭mongoDB命令:
./mongodb
- 根据之前的设置,在实验室环境下启动mongoDB,mongoDB.conf需在当前目录下: 通过
mongod -f mongod.conf
- mongoDB 3.0以后版本的远程设置与之前版本不一,可以参考百度
MongoDB 基本概念
关系型数据库 MongoDB
table collection(集合) row document(文档) column field(域)
MongDB是一个高性能,开源,无模式的文档型NosQL数据库。
MongoDB 主要功能特性:
- 文件存储格式BSON(一种json的扩展)
- 模式自由,数据格式不受限了表的结构
- 支持动态查询
- 支持完全索引
- 支持复制(其主从复制)和故障恢复
- 使用高效的二进制数据存储,包括大型对象
- 自动处理碎片,以支持云计算层次的扩展。
- 支持Java、Ruby、Python、C++、PHP等多种语言
- 内部支持JavaScript
MongoDB的优势
- 查询速度快
- 高并发。可以达到2万个并发。
- 高容量。支持10TB级的数据量
MongoDB使用场景
- 网站数据
- 缓存
- 大尺寸、低价值的数据
- 高伸缩的场景
- 用于对象以及Json数据存储
MongoDB 创建数据库
检查当前选择的数据库,使用
db
命令检查数据库列表,使用
show dbs
命令MongoDB使用
use DATABASE_NAME
命令创建数据库。如果指定数据库DATABASE_NAME
不存在,则改命令将创建一个新的数据库,否则返回现有的数据库。use DATABASE_NAME
MongoDB 创建用户
创建具体的用户
use test
db.createUser(
{
user: "test",
pwd: "password",
roles: [ { role: "userAdmin", db: "test" } ]
}
)
最后都要认证一下
db.auth("user", "pwd")
MongoDB插入
MongoDB的id在不指名的情况下,自动生成。_id一共12个字节,划分如下:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id,
3 bytes incrementer)
MongoDB shell命令查询
//查集合里的所有记录
db.集合名.find()
//查所有集合
show collections
//查询集合记录数
db.集合名.count()
//删除集合
db.集合名.drop()
MongoDB VS HBase
- MongoDB没有事务的概念
- MongoDB不能表与表的Join
- MongoDB的写性能差于HBase的写性能