前言

MongoDB是一个由C++语言编写的基于分布式文件存储的数据库,是当前NoSQL数据库中比较热门的一种,旨在为Web应用提供可扩展的高性能数据存储解决方案。

MongoDB

简介

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,因此可以存储比较复杂的数据类型。最大的特点是其支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

特点及功能特性

特点:高性能、易部署、易使用,存储数据非常方便

主要功能特性有:

面向集合存储,易存储对象类型的数据

模式自由

支持动态查询

支持完全索引,包含内部对象

支持查询

支持复制和故障恢复

使用高效的二进制数据存储,包括大型对象(如视频等)

自动处理碎片,以支持云计算层次的扩展性

支持Ruby,Python,Java,C++,PHP等多种语言

文件存储格式为Bson(一种Json的扩展)

可通过网络访问

优缺点

与非关系型数据库相比,MongoDB的优点:

弱一致性(最终一致),更能保证用户的访问速度

文档结构的存储方式,能够更便捷的获取数据

内置GridFS,支持大容量的存储

内置Sharding

第三方支持丰富(这是与其他的NoSQL相比,MongoDB也具有的优势)

性能优越

与非关系型数据库相比,MongoDB的缺点:

不支持事务操作

占用空间过大

没有成熟的维护工具

MongoDB安装

1.下载mongodb

wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.2.1.tgz

2.解压缩tar文件

.tgz
/ /usr/local/mongodb-3.2

 

3. 创建数据文件和日志文件

mkdir -p /usr/local/mongodb-3.2/data
mkdir /usr/local/mongodb-3.2/logs
touch /usr/local/mongodb-3.2/logs/mongod.log

4.在安装mongodb的用户下添加如下环境变量,以便直接使用mongodb bin目录下的命令

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

5.启动mongodb

mongod --dbpath=/usr/local/mongodb-3.2/data --logpath=/usr/local/mongodb-3.2/logs/mongod.log --logappend  --port=27017 &

6.检查端口是否启动,端口为:27017

netstat -nlp |
tcp                              /mongod
unix        [ ACC ]     STREAM     LISTENING       /mongod         /tmp/mongodb-.sock

启动成功。

7.连接数据库

# mongo
> use test

8.设置mongodb自动启动(无权限)
将如下命令添加到 /etc/rc.local

mongod --dbpath=/usr/local/mongodb-&

9.设置mongodb自动启动(有权限)
将如下命令添加到 /etc/rc.local

mongod --dbpath=/usr/local/mongodb-& -auth

10.添加用户

> use test     //不存在会自动创建
> db.createUser({user:",roles:[{role:'dbOwner',db:'userdb'}]})
> use admin    //切换到 admin 库下
> db.system.users.find()  //查看有哪些用户

MongoDB连接和用户管理

1)连接MongoDB:

1:在本机可以直接运行命令mongo进入到MongoDB shell中

2:如果MongoDB监听端口并不是默认的27017,则在连接的时候需要加 --port选项,例如

mongo --port 

3:连接远程mongodb,需要加--host,例如

mongo --host 127.0.0.1

4:如果设置了验证,则在连接的时候需要带用户名和密码

 mongo -uusername -ppasswd    //这个和MySQL挺像

2)MongoDB用户管理

1:首先mongodb用户是针对库来的,建立用户时要先进入到对应的库里

2:use test //切换到test库下

3:db.createUser({user:"admin",pwd:"123456",roles:[{role:'dbOwner',db:'userdb'}]})

4:use admin //切换到admin库

5:db.system.users.find() // 列出所有用户,需要切换到admin库

6:show users //查看当前库下所有的用户

7:db.dropUser('admin') //删除用户

8:关于用户角色,参考文档http://bbs.51cto.com/thread-1146654-1.html

3)数据库管理
#查看版本
db.version()
#显示当前的库   db
# 切换/创建库
use userdb  //如果库存在就切换,不存在就创建
#此时show dbs 看不到userdb,需要我们创建一个集合
db.createCollection('clo1')
再show dbs就有userdb了。
#查看所有数据库  
show dbs
#删除数据库 mydb
use mydb  //先切换到该库下,然后再删除
db.dropDatabase()

4)数据管理
创建集合

db.createCollection(, max :  } )

语法:db.createCollection(name,options)
name就是集合的名字,options可选,用来配置集合的参数,参数如下
capped true/false (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。
autoindexID  true/false (可选)如果为true,自动创建索引_id字段的默认值是false。
size (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。单位B
max (可选)指定封顶集合允许在文件的最大数量。

查看集合

show collections

在集合中添加文档

db.Account.insert({AccountID:,UserName:"})  //如果集合不存在,直接插入数据,则mongodb会自动创建集合
修改

db.Account.update({AccountID:},{}})

查看

db.Account.find()   //查看所有文档
db.Account.})   //根据条件查询
删除
db.Account.remove({AccountID:})  //根据条件删除
要删除整个文档
db.Account.drop()
查看集合的状态
use dbname  //先进入对应的库,然后查看集合状态
db.printCollectionStats()

5)数据库性能

db.stats()  //查看当前库的信息
db.serverStatus()   //查看mongodb服务器的状态

MongoDB安装部署(一)的更多相关文章

  1. 快速掌握mongoDB(一)——mongoDB安装部署和常用shell命令

    1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...

  2. mongoDB(一)——mongoDB安装部署和常用shell命令

    1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...

  3. linux + MongoDB 安装 + 部署 + 讲解 (满满干货看完记得收藏噢)

    话不多说开始了! 安装 安装就依据菜鸟教程的进行安装 传送门 => https://www.runoob.com/mongodb/mongodb-linux-install.html 好啦!现在 ...

  4. Linux-Ubuntu14.04下mongodb安装部署

    mongo 下载:https://www.mongodb.com/download-center/community?jmp=nav 创建目录,将下载的文件放在如下位置 xxx@ubuntu:/usr ...

  5. Windows下Mongodb安装部署

    1.下载安装包 mongodb-win32-x86_64-enterprise-windows-64-3.6.4.zip 解压 安装失败(当前环境windows server2012 R2):已验证可 ...

  6. mongodb 安装部署说明

    mongodb.conf 配置文件 # Where the databases will be stored dbpath=/usr/local/mongodb/mongodb-/data/db # ...

  7. 分享知识-快乐自己:mongodb 安装部署(linux)

    1):下载 mongodb 包 [root@admin tools]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6. ...

  8. linux上MongoDB安装部署

    ①下载安装包 mongodb-linux-x86_64-rhel62-3.6.3.tgz   ②解压: tar zxvf mongodb-linux-x86_64-rhel62-3.6.3.tgz   ...

  9. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

随机推荐

  1. SELECT (Transact-SQL)

    从数据库中检索行,并允许从 SQL Server 中的一个或多个表中选择一个或多个行或列.  虽然 SELECT 语句的完整语法较复杂,但其主要子句可归纳如下: [ WITH <common_t ...

  2. 必须要会的技能(一) 如何实现设计时Binding

    今天我们来分享一个主题:DesignTime Binding设计时绑定. 这一项技术可以使用在所有包括WPF及其衍生出来的技术上,比如Sliverlight,当然也包括UWP 先来说明一下设计时Bin ...

  3. Crowdsourcing(众包)

    群众外包(英语:crowdsourcing)是互联网带来的新的生产组织形式.<连线>(Wired)杂志记者Jeff Howe于2006年发明的一个专业术语,用来描述一种新的商业模式,即企业 ...

  4. 为什么要加入<!doctype html>这个文档声明——IE怪异模式

    调试了很久,发现了一个非常细微但又十分重要的问题,又一次我在对于文档声明类型的时候,声明了如下类型 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...

  5. killall 根据名称终止进程

    根据名称终止进程 killall [option] name-list killall 将信号发送到一个或多个进程用来终止它.除超级用户外,只有进程的所有者才可以对进程执行killall,超级用户可以 ...

  6. linux 下第一个cordova android app

    上篇博客写了linux下 cordova + ionic 环境的搭建 , 今天就来做下第一个app的简单讲解吧 首先昨天已经可以通过命令行的方式创建app了.经过今天好一段时间的研究发现使用 ioni ...

  7. 第十五章:输入和输出(I/O)

    一:流分类 抽象基类:InputStream和Reader        抽象类不能用于创建模板哦! OutputStream和Writer 方向:  以内存为中心! 输入流(读) 输出流(写) 数据 ...

  8. Angularjs做的一个小页面

    <!DOCTYPE html><html lang="en" ng-app="todolist"> <head> <m ...

  9. Mycat+Mysql 插入数据报错 i[Err] 1064 - partition table, insert must provide ColumnList

    使用Navicat连接Mycat 8066 成功插入了分库表和全局表 1.全局表 sql如下: '); '); '); 插入成功! 2.分库表 sql如下: ', null, null, null, ...

  10. 【BZOJ 2440】【中山市选 2011】完全平方数 莫比乌斯函数+容斥原理

    网上PoPoQQQ的课件: •题目大意:求第k个无平方因子数 •无平方因子数(Square-Free Number),即分解之后所有质因数的次数都为1的数 •首先二分答案 问题转化为求[1,x]之间有 ...