文档章节

MongoDB初遇

trayvon
 trayvon
发布于 2016/04/17 18:20
字数 1663
阅读 122
收藏 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
粉丝 15
博文 125
码字总数 185245
作品 1
程序员
私信 提问
MongoDB安全事件的防范与反思

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

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

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

清风漫步
2014/02/21
0
0
大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

加米谷数据分析挖掘课程明细,从理论到云端实操环境到项目实战,手把手教您从0掌握数据分析与挖掘技术,带您走进数据时代。 第一阶段(python基础) python入门:1、Python版本特性介绍2、P...

加米谷大数据
04/17
0
0
mongodb安裝及初相识(node,使用mongoose )

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

天上月丶
05/03
0
0
微信小游戏爆款秘笈 数据库MongoDB攻略篇

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB 发表于云+社区专栏 随着微信小游戏的爆发,越来越多开发者关注到MongoDB与小游戏业务的契合度。 ...

腾讯云加社区
08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

降压变换器 Buck

特点 输入输出极性相同。 工作过程 在 MOS 导通时,输入电源通过 L 和 C 滤波后向负载端提供电流;当 MOS 断开后,L 通过二极管续流,保持负载电流连续。输出电压因为占空比的作用,不会超过...

colinux
今天
1
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
3
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部