Mongodb使用手册

简介
MongoDB 是一个基于分布式文件存储的NoSQL数据库

由C++语言编写,运行稳定,性能高

旨在为 WEB 应用提供可扩展的高性能数据存储解决方案

MongoDB特点
模式自由 :可以把不同结构的文档存储在同一个数据库里

面向集合的存储:适合存储 JSON风格文件的形式

完整的索引支持:对任何属性可索引

复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移

自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器

丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组

快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划

高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)

基本操作
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成

MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组、文档数组

安装管理mongodb环境

完成数据库、集合的管理

数据的增加、修改、删除、查询

名词
SQL术语/概念MongoDB术语/概念解释/说明

databasedatabase数据库

tablecollection数据库表/集合

rowdocument数据记录行/文档

columnfield数据字段/域

indexindex索引

table joins 表连接,MongoDB不支持

primary keyprimary key主键,MongoDB自动将_id字段设置为主键

三元素:数据库,集合,文档

集合就是关系数据库中的表

文档对应着关系数据库中的行

文档,就是一个对象,由键值对构成,是json的扩展Bson形式

{'name':'guojing','gender':'男'}

集合:类似于关系数据库中的表,储存多个文档,结构不固定,如可以存储如下文档在一个集合中

{'name':'guojing','gender':'男'}

{'name':'huangrong','age':18}

{'book':'shuihuzhuan','heros':'108'}

数据库:是一个集合的物理容器,一个数据库中可以包含多个文档

一个服务器通常有多个数据库

安装

32bit的mongodb最大只能存放2G的数据,64bit就没有限制

解压

tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.4.0.tgz

移动到/usr/local/目录下

sudo mv -r mongodb-linux-x86_64-ubuntu1604-3.4.0/ /usr/local/mongodb

将可执行文件添加到PATH路径中

export PATH=/usr/local/mongodb/bin:$PATH

管理mongo
配置文件在/etc/mongod.conf

默认端口27017

启动

sudo service mongod start

停止

sudo service mongod stop

使用终端连接

这个shell就是mongodb的客户端,同时也是一个js的编译器

mongo

命令

db查看当前数据库名称

db.stats()查看当前数据库信息

终端退出连接

exit

或ctrl+c

GUI:robomongo,解压后在bin目录下找到运行程序

数据库切换
查看当前数据库名称

db

查看所有数据库名称

列出所有在物理上存在的数据库

show dbs

切换数据库

如果数据库不存在,则指向数据库,但不创建,直到插入数据或创建集合时数据库才被创建

use 数据库名称

默认的数据库为test,如果你没有创建新的数据库,集合将存放在test数据库中

数据库删除

删除当前指向的数据库

如果数据库不存在,则什么也不做

db.dropDatabase()

集合创建
语法

db.createCollection(name, options)

name是要创建的集合的名称

options是一个文档,用于指定集合的配置

参数capped:默认值为false表示不设置上限,值为true表示设置上限

参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节

db.createCollection("sub", { capped : true, size : 10 } )

查看当前数据库的集合

语法

show collections

删除

语法

db.集合名称.drop()

数据类型
下表为MongoDB中常用的几种数据类型:

Object ID:文档ID

String:字符串,最常用,必须是有效的UTF-8

Boolean:存储一个布尔值,true或false

Integer:整数可以是32位或64位,这取决于服务器

Double:存储浮点值

Arrays:数组或列表,多个值存储到一个键

Object:用于嵌入式的文档,即一个值为一个文档

Null:存储Null值

Timestamp:时间戳

Date:存储当前日期或时间的UNIX时间格式

object id

每个文档都有一个属性,为_id,保证每个文档的唯一性

可以自己去设置_id插入文档

如果没有提供,那么MongoDB为每个文档提供了一个独特的_id,类型为objectID

objectID是一个12字节的十六进制数

前4个字节为当前时间戳

接下来3个字节的机器ID

接下来的2个字节中MongoDB的服务进程id

最后3个字节是简单的增量值

插入
语法

db.集合名称.insert(document)

插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId

  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员 阿酷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值