MongoDB初遇

1、MongoDB服务的启动

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

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

mongod --dbpath e:\data\db

   注意:dbpath表示就是数据存放的目录,只有是存在的目录就能够了。若是是Windows32位系统MongoDB是没有默认的存储引擎的,必需要经过启动参数指定存储引擎如:数据库

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

只须要在第一次指定dbpath的时候加上存储引擎参数就能够了,只要不改变dbpath的目录,之后就不用加存储引擎参数了。segmentfault

1:启动mongodb服务服务器

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

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,因此安装完成以后就能够经过spa

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

   注意指定的日志文件目录和数据文件目录必定要存在,不然会出错。若是要修改能够把install选项换成reinstall,如:命令行

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

   若是你安装服务以后发现你每一次启动都想指定不一样的启动参数,那么可使用rest

sc delete mongodb  来删除服务。

   若是只是本机使用,建议启动参数不用键- -auth选项,特别是不熟悉mongodb的状况下,由于mongodb的权限管理相关的知识仍是比较多的。

2、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"
                }
        ]
}

3、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中执行。

4、参考连接

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

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

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

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

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

http://www.javashuo.com/article/p-krjhcxmq-cv.html

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/

相关文章
相关标签/搜索