mongodb安装

    • 下载MongoDB
      首先到 MongoDB 官网 www.mongodb.org 下载最新版本mongodb-osx-x86_64-3.2.6.tgz (可能已经更新到其它版本)

    • 安装
      解压,然后把解压后文件复制到自己想安装的目录下即可,可以把目录重命名,例如把mongodb-osx-x86_64-3.2.5重命名为mongodb,或用shell命令行 。

    • 配置
      在根目录下新建数据目录 data,在 data 内部新建 db 目录,或使用shell命令行 。
      打开终端, cd 到 mongodb 的根目录下,

    然后输入

    1. sudo chown -R 输入计算机用户名 /data

    TODO:

    • 使用 Homebrew 安装 MongoDB
    1. 首先升级 Homebrew的 package 数据库.

    在系统的 shell 中输入:

    1. brew update
    1. 安装 MongoDB.

    使用 brew 安装有几种选择,你可以根据需要来安装MongoDB。

    • 安装二进制 MongoDB

    使用如下命令:

    1. brew install mongodb
    • 从TLS/SSL支持源建立MongoDB

    从源文件建立MongoDB且包括TLS/SSL的支持, 使用如下命令:

    1. brew install mongodb --with-openssl
    • 安装最新开发版本的 MongoDB,用于开发和测试。

    安装命令如下:

    1. brew install mongodb --devel

    for ubuntu

    • 支持平台

    MongoDB 仅长期支持64位的 Ubuntu releases,这意味着目前只有 12.04 LTS (Precise Pangolin) 和 14.04 LTS (Trusty Tahr)两个版本的Ubuntu被支持。

    • Packages

    在 MongoDB 官方仓库中提供如下的包:

    1. mongodb-org // 完成下面四个部分的安装
    2. mongodb-org-server // mongod 后台程序、相关配置和初始化脚本
    3. mongodb-org-mongos // mongos 后台程序
    4. mongodb-org-shell // mongo shell.
    5. mongodb-org-tools // MongoDB 工具: mongoimport bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop.

    配置文件 /etc/mongod.conf 绑定的默认 IP 是 127.0.0.1 。如果想变动初始化设置请提前做好备份。

    • 初始化脚本

      mongodb-org package 包括各类初始化脚本,包括/etc/init.d/mongod。可以使用这些脚本启动、停止和重新启动后台进程。

    MongoDB 使用 /etc/mongod.conf 配置文件和初始化脚本。 可参照配置文件说明来进行设置。
    对于MongoDB@3.2.6,没有 mongos 的初始化脚本,mongos 进程只在分片中使用。那么在这个环境下,你可以使用自己电脑中mongos初始化脚本的mongod初始化脚本。参照mongos使用说明来进行详细配置。

    • 安装 MongoDB

    想要安装最新版本,请参照之前版本的文件,例如要安装3.2,你可以参照3.0版本文件。

    1. 输入公共秘钥使用包管理系统

    使用 Ubuntu 包管理工具 (i.e. dpkg and apt) 确保包的 一致性和可靠性 by requiring that distributors sign packages with GPG keys. 使用如下命令进入MongoDB的公共GPG秘钥:

    1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
    1. 为MongoDB创建文件列表

    创建 /etc/apt/sources.list.d/mongodb-org-3.2.list 文件列表。注意要根据不同的Ubuntu版本使用相应的命令,如下:

    1. // Ubuntu 12.04
    2. echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
    3. // Ubuntu 14.04
    1. 重新加载本地数据库

    使用如下命令:

    1. sudo apt-get update
    1. 安装MongoDB包

    安装最新稳定 MongoDB 版本,使用如下命名:

    1. sudo apt-get install -y mongodb-org
    2. Install a specific release of MongoDB.

    安装特定版本,必须分别指定相应package的版本号,例如:

    1. sudo apt-get install -y mongodb-org=3.2.6 mongodb-org-server=3.2.6 mongodb-org-shell=3.2.6 mongodb-org-mongos=3.2.6 mongodb-org-tools=3.2.6

    如果只安装 mongodb-org=3.2.6 ,不安装其余的package,则会忽略你的指定来安装最新的package。

    固定特定的 MongoDB 版本.

    尽管能指定任意版本的 MongoDB, 当有新版本发布 apt-get 将升级包。为阻止盲目升级,固定package,固定当前已安装的版本,可按顺序使用如下命令:

    • 运行 MongoDB

    默认的 MongoDB 实例数据存储在 /var/lib/mongodb ,日志文件存储在 /var/log/mongodb目录中 。

    如果你改变用户来运行MongoDB进程,你必须到 /var/lib/mongodb 和 /var/log/mongodb目录中改变该用户的使用权限。

    1. 启动 MongoDB.

    使用如下命令来启动:

    1. sudo service mongod start
    1. 证明 MongoDB 已经启动成功

    在 /var/log/mongodb/mongod.log 日志文件中看到如下内容时说明启动成功。

    [initandlisten] waiting for connections on port
    where is the port configured in /etc/mongod.conf, 27017 by default.

    1. 停止 MongoDB.

    当需要停止MongoDB进程时使用如下命令:

    1. sudo service mongod stop
    1. 重新启动 MongoDB.

    使用如下命令:

    1. sudo service mongod restart
    1. 使用 MongoDB.

    MongoDB 在各种驱动版本中提供 Getting Started Guides(GSG) .

    在生产环境中配置MongoDB之前,要认真查看说明文档。
    然后,停止MongoDB,在运行mongod实例的终端按 Control+C 退出。

    • 卸载 MongoDB

    要从系统中完全删除 MongoDB,你必须删除MongoDB应用程序、配置文件、所有数据和日志文件。

    注意:这将完全移除MongoDB,包括它的配置和所有的数据库,并且该操作是不可恢复的,所以请谨慎操作或事先做好备份。

    1. 停止 MongoDB.

    使用如下命令来停止mongod:

    1. sudo service mongod stop
    1. 删除安装包

    删除所有之前安装过的 package.

    1. sudo apt-get purge mongodb-org*
    1. 删除数据目录

    删除 MongoDB 数据库和日志文件。

    1. sudo rm -r /var/log/mongodb
    2. sudo rm -r /var/lib/mongodb

    启动与关闭

    • shell启动
    • mh
    • 查看进程
    • 关闭
    1. #! /bin/bash
    2. mkdir -p ~/mongo/pids
    3. mkdir -p ~/mongo/logs
    4. # remove lock file
    5. [ -f ~/mongo/db/mongod.lock ] && rm -rf ~/mongo/db/mongod.lock
    6. touch ~/mongo/pids/mongodb.pid
    7. # mongod --bind_ip 192.168.1.100 --port 27017 --dbpath tmp/db --logpath tmp/logs/mongodb.log --pidfilepath tmp/pids/mongodb.pid
    8. nohup mongod --bind_ip 127.0.0.1 --port 27017 --dbpath ~/mongo/db --logpath ~/mongo/logs/mongodb.log --pidfilepath ~/mongo/pids/mongodb.pid > ~/mongo/logs/mongod.log 2>&1 &
    1. $ [sudo] npm install -g mh

    Usage

    当前目录启动mongodb

    在新建目录执行

    1. $ mh

    它会创建tmp目录

    全局启动mongodb

    1. $ mhg

    在进程里查询是否存在mongod进程

    1. $ ps -ef|grep mongod

    如果没有数据,即没有启动mongodb

    此时,执行

    停止或关闭

    根据进程杀死

      根据端口杀死

      1. $ npm i -g kp
      2. $ kp 27017

      robomongo

      基础操作

      在robo里执行各种语句

      • 启动 MongoDB

      输入 ls 显示 mongodb 根目录下文件,看到有一个 bin 目录,cd 到 bin 目录,输入 ./mongod回车后会在终端窗口输出如图1-1,最后一行会显示默认端口号,应该是27017,说明数据库已启动。重新打开一个终端,或 cmd+T 打开,输入 ./mongo回车后会输出如图1-2,mongodb安装 - 图2
      打开数据库的 shell 命令行管理程序。

      • 停止 MongoDB

      要停止MongoDB数据库,比较好的方法是从 MongoDB 的shell 命令行管理程序进行。
      打开 shell 后,使用如下命令:

      1. > use admin // 切换到admin数据库
      2. switched to db admin
      3. > db.shutdownServer()//彻底关闭当前操作并迫使mongod退出
      4. server should be down...
      5. >

      这时你可以看一下数据库窗口,会发现它已经退出了。

      • 常用操作指令(参考)

      TODO:此处拆开,稍微详细一点解释

      show dbs 显示所有有数据的数据库

      1. > show dbs
      2. local 0.073GB
      3. mydb 0.003GB
      4. test 0.001GB
      5. >

      show users 显示所有用户

      use one_database_name 切换到某个数据库

      1. switched to db admin
      2. > use mydb
      3. switched to db mydb
      4. >

      db.help() 显示数据库操作的帮助提示

      show collections 显示该数据库下的所有有数据的数据集合(类似于关系数据库的表)

      1. > show collections
      2. mydb1 // 只有一个数据集合
      3. >

      db.collection_name.help() 显示所有数据集合操作的帮助提示

      1. > db.mydb1.help()
      2. DBCollection help
      3. db.mydb1.find().help() - show DBCursor help
      4. db.mydb1.bulkWrite( operations, <optional params> ) - bulk execute write operations, optional parameters are: w, wtimeout, j
      5. db.mydb1.count( query = {}, <optional params> ) - count the number of documents that matches the query, optional parameters are: limit, skip, hint, maxTimeMS
      6. ...
      7. >

      db.collection_name.save({a:’tl’}) 在该数据集里存储一条数据,即存储一个文档

      1. > db.mydb1.save({a:'tl'})
      2. WriteResult({ "nInserted" : 1 })
      3. >

      db.collection_name.remove({a:’tl’}) 删除数据集中一条数据

      1. > db.mydb1.remove({a:'tl'})
      2. WriteResult({ "nRemoved" : 1 })
      3. >

      db.collection_name.drop() 删除该数据集

      1. > db.mydb1.drop()
      2. true
      3. > show collections
      4. >

      db.collection_name.find() 查找该数据集里的所有数据,find函数里可以加查询参数。

      1. > db.mydb1.find() // 不加参数则列出所有数据
      2. { "_id" : ObjectId("573015e01fd72f511817e175"), "article" : "aa bb cc dd" }
      3. { "_id" : ObjectId("573015ed1fd72f511817e176"), "article" : "aa hhh dlkfj gg" }
      4. { "_id" : ObjectId("573015f81fd72f511817e177"), "article" : "aa bb cdlsjs" }

      参考