MongoDB

MongoDB 安装

  1. 进入mongoDB shell命令: ./mongo
  2. 启动和关闭mongoDB命令: ./mongodb
  3. 根据之前的设置,在实验室环境下启动mongoDB,mongoDB.conf需在当前目录下: 通过mongod -f mongod.conf
  4. mongoDB 3.0以后版本的远程设置与之前版本不一,可以参考百度

MongoDB 基本概念

关系型数据库 MongoDB

table collection(集合) row document(文档) column field(域)

MongDB是一个高性能,开源,无模式的文档型NosQL数据库。

MongoDB 主要功能特性:

  1. 文件存储格式BSON(一种json的扩展)
  2. 模式自由,数据格式不受限了表的结构
  3. 支持动态查询
  4. 支持完全索引
  5. 支持复制(其主从复制)和故障恢复
  6. 使用高效的二进制数据存储,包括大型对象
  7. 自动处理碎片,以支持云计算层次的扩展。
  8. 支持Java、Ruby、Python、C++、PHP等多种语言
  9. 内部支持JavaScript

MongoDB的优势

  1. 查询速度快
  2. 高并发。可以达到2万个并发。
  3. 高容量。支持10TB级的数据量

MongoDB使用场景

  1. 网站数据
  2. 缓存
  3. 大尺寸、低价值的数据
  4. 高伸缩的场景
  5. 用于对象以及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

  1. MongoDB没有事务的概念
  2. MongoDB不能表与表的Join
  3. MongoDB的写性能差于HBase的写性能
Share