文档章节

MongoDB初遇

trayvon
 trayvon
发布于 2016/04/17 18:20
字数 1663
阅读 126
收藏 7

一、MongoDB服务的启动

       Mongodb的安装还是比较容易的,从MongoDB下载MongoDB,Windows下基本上按照提示一步一步的执行就可以了,Linux下只需解压就可以了。安装完毕后为了避免每一次都加上绝对路径,配置一下环境变量,把mongodbbin目录加入到path中。

接下来启动mongodb服务,如果配置了环境变量最简单的启动mongodb服务就是:

mongod --dbpath e:\data\db

   注意:dbpath表示就是数据存放的目录,只有是存在的目录就可以了。如果是Windows32位系统MongoDB是没有默认的存储引擎的,必须要通过启动参数指定存储引擎如:

mongod --storageEngine=mmavp1 –dbpath e:\data\db

只需要在第一次指定dbpath的时候加上存储引擎参数就可以了,只要不改变dbpath的目录,以后就不用加存储引擎参数了。

1:启动mongodb服务

   启动mongodb服务除了指定dbpath参数之外还有几个比较常用的就是—auth,表示使用数据库需要验证,--logpath表示日志文件的位置。--logappend表示添加日志的方式。例如:

mongod --auth --logpath "e:\logs\log.log" --logappend --dbpath "e:\data\ \db"

如果绝对每一次启动mongodb输入这么多参数麻烦,Windows下可以通过下面的命令安装mongodb服务。

mongod --auth --logpath "e:\logs\log.log" --logappend --dbpath "e:\data\ \db" –install

因为默认的服务名就是mongodb,所以安装完成之后就可以通过

net start mongodb 来启动服务
net stop mongodb 来关闭服务

   注意指定的日志文件目录和数据文件目录一定要存在,否则会出错。如果要修改可以把install选项换成reinstall,如:

mongod --auth --logpath "e:\logs\log.log" --logappend --dbpath "e:\data\ \db" –reinstall

   如果你安装服务之后发现你每一次启动都想指定不同的启动参数,那么可以使用

sc delete mongodb  来删除服务。

   如果只是本机使用,建议启动参数不用键- -auth选项,特别是不熟悉mongodb的情况下,因为mongodb的权限管理相关的知识还是比较多的。

二、MongoDB的基本命令


   启动好了mongodb服务,就可以通过mongodb提供的客户端连接到mongodb数据库了,启动一个命令窗口,输入mongo命令:连接到mongodb数据服务器默认使用的是test数据库

图2:连接mongodb服务

查看所有的数据库
show dbs
查看当前使用的数据库
db
切换数据库和MySQL一样使用关键字use,下面命令是切换到test数据库
use test
创建数据库也是使用use
只有在数据库中创建了集合,才会查看到服务器中有对应的数据库
创建集合
db.createCollection(“collection_name”)
删除集合
db.collection_name.drop()
db.dropDatabase()
mongodb中没有表的慨念,与之相对应的是集合collection,查看所有的集合
show collections
查看有那些用户:(admin数据库才可以)
db.system.users.find().pretty()
这条语句就是查询admin数据库下的system.users集合中的数据,pretty方法表示格式化输出的数据。

   默认情况下mongodb是没有用户的,如果是在—auth启动的mongodb会应许你创建一个用户,如果要创建更多的用户则需要响应的权限。

   所以如果我们用—auth启动mongodb服务,我们创建的第一个用户的角色一般是userAdminAnyDatabase 这个角色是mongodb内置的角色。这个内建角色最常用的就是它拥有查看数据库列表的权限,和对所有数据库的userAdmin这个内建角色的权限。如果一个用户在数据库上被赋予userAdmin这个角色,那么他在该数据库上就有以下的权限:

  changeCustomData
  changePassword
  createRole
  createUser
  dropRole
  dropUser
  grantRole
  revokeRole
  viewRole
  viewUser

   这里我们不在深入的探讨用户(usesr),角色(role),权限(action)的话题,对于最基本的操作我们需要注意的是用户是建立在数据库上的,所以当我们只需授权操作时候要在use到对应的数据库上db.auth(“username”,”password”)。也可以自定义角色,指定角色有哪些权限(action)

下面是在admin数据库上创建一个admin用户,并且为他赋予了userAdminAnyDatabase角色和创建成功的返回结果。

db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

三、MongoDB的数据备份与还原

首先是mongodump命令,还是只使用基本的参数

mongodump –d database_name –o outdir

把数据库名为database_name的数据库导出到outdir目录

mongodump命令导出的数据恢复:

mongorestore –d database_name outdir

outdir目录的导入到数据库名为database_name 的数据库

mongoexport –d database_name –c collection_name –o outfile_name

把数据库名为database_name 集合名为collection_name导出为outfile_name

mongoimport –d database_name –c collection_name infile_name

把文件infile_name文件的数据导入到数据库名为database_name,集合名为collection_name的集合。

   相比于 mongodbimport命令,mongorestore命令可以实现批量的导入,恢复重mongodump导出的整个数据库的时候,使用mongoresotre直接一步到位,非常方便。

   上面的4个命令默认的连接的数据库都是localhost,端口是27017mongodb服务。所以一定要启动本地的mongodb服务。当然你也可以通过—host hostname:port的方式来指定要连接的主机和端口。值得注意的是上面的是个命令都是单独的工具,所以直接在命令行执行就可以了,不要在mongo中执行。

四、参考链接

下面的链接是mongodb官方文档关于mongodb基本操作(增删改查)

https://docs.mongodb.org/manual/core/crud-introduction/

Mongodb的官方文档中有一些内容不好找,下面就是一个mongodb shell常用的文档链接,其中就包含了用户和角色管理

https://docs.mongodb.org/manual/reference/method/

如果你没有安装成功,这里有一篇不错的关于怎样安装mongodb的文章:

https://segmentfault.com/a/1190000002744306

mongodb的数据备份与恢复:

https://docs.mongodb.org/manual/reference/program/mongodump/

https://docs.mongodb.org/manual/reference/program/mongorestore/

https://docs.mongodb.org/manual/reference/program/mongoexport/

© 著作权归作者所有

共有 人打赏支持
上一篇: utf8编码
下一篇: 代理模式
trayvon
粉丝 16
博文 125
码字总数 185343
作品 1
程序员
私信 提问
2017年MongoDB中文社区深圳用户组大会

2017 MongoDB中文社区用户组线下交流会 , 上个月在美丽的杭州圆满落幕,反响热烈。 4月22日, 来自各行各业的大咖们将带着满满干货来到深圳用户组线下交流会现场, 为你带来一场精彩绝伦、不...

MongoDB中文社区
2017/04/07
8
0
MongoDB安全事件的防范与反思

此文已由作者温正湖授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 近段时间来,全球范围内数以万计的MongoDB实例被攻击,作为旨在为用户提供最优MongoDB云服务的...

网易云
2018/10/19
0
0
初识MongoDB-用法和用途

用意:记录一下自己学习MongoDB的一些体会. 适合范围, 安装和用法. 一. MongoDB相关 JavaScript统一天下 JavaScript正在快节奏地统一整个web开发流程. JvaScript是WEB前端开发的唯一依靠, 依赖...

清风漫步
2014/02/21
0
0
mongodb安裝及初相识(node,使用mongoose )

官网 https://www.mongodb.com/ 下载安装mongodb https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 安装到最后一步时,将左下角的勾选去掉,那个勾选是安装图形化界面...

天上月丶
2018/05/03
0
0
php xhprof扩展xhgui安装时提示mongodb未安装

报错信息如下: Problem 1 - Installation request for mongodb/mongodb 1.0.2 -> satisfiable by mongodb/mongodb[1.0.2]. - mongodb/mongodb 1.0.2 requires ext-mongodb ^1.1.0 -> the req......

MHZ
2017/01/05
247
0

没有更多内容

加载失败,请刷新页面

加载更多

看过上百部片子的这个人教你视频标签算法解析

本文由云+社区发表 随着内容时代的来临,多媒体信息,特别是视频信息的分析和理解需求,如图像分类、图像打标签、视频处理等等,变得越发迫切。目前图像分类已经发展了多年,在一定条件下已经...

腾讯云加社区
21分钟前
0
0
2. 红黑树

定义:红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树(Binary Search Tree)。 要理解红黑树,先要了解什么是二叉查找树。在上一章中,我们学习了什么是二叉树,以及二叉树...

火拳-艾斯
22分钟前
0
0
input的button类型,点击页面跳转

一、input type=button 不做任何操作 例如: <input type="button" class="btn btn-primary" style="width: 30%" value="返回" onclick="window.location.href='/users/list'"></input> onc......

Sunki
28分钟前
0
0
踩坑:js 小数运算出现精度问题

背景 在学习小程序商城源码时发现了这个问题,单价可能出现小数,小数之间运算结果会莫名其妙多出一大串数字,比如下面这样👇。 在此之前我是知道 js 中著名的 0.1 + 0.2 != 0.3 的问题的,...

dkvirus
33分钟前
0
0
zookeeper和HBASE总结

zookeeper快速上手 zookeeper的基本功能和应用场景 zookeeper的整体运行机制 zookeeper的数据存储机制 数据存储形式 zookeeper中对用户的数据采用kv形式存储 只是zk有点特别: key:是以路径...

瑞查德-Jack
56分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部