インストール

実行環境は以下の通り.

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.3
BuildVersion:   17D47

$ brew --version
Homebrew 1.5.12
Homebrew/homebrew-core (git revision 96da4a; last commit 2018-03-24)

Homebrewでインストール.

$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.6.3.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mongodb-3.6.3.high_sierra.bottle.tar.gz
==> Caveats
To have launchd start mongodb now and restart at login:
  brew services start mongodb
Or, if you don't want/need a background service you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
🍺  /usr/local/Cellar/mongodb/3.6.3: 19 files, 297.6MB

$ mongo --version
MongoDB shell version v3.6.3
git version: 9586e557d54ef70f9ca4b43c26892cd55257e1a5
OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

/usr/local/etc/mongod.conf の中身は以下の通り

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1

起動

必要に応じて conf を修正したり, 新規に作り –config に指定して起動する. 今回は上記の conf をそのまま利用.

mongod --config /usr/local/etc/mongod.conf

バックグラウンドで動かす場合は –fork を指定する.

$ mongod --fork --config /usr/local/etc/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 77623
child process started successfully, parent exiting

コマンドオプションで設定する場合は dbpathにデータ用ディレクトリを指定し, logpathにログファイルを指定する.

$ mongod --dbpath $HOME/var/mongodb/ --logpath $HOME/var/log/mongodb.log

停止

コンソール(mongo)を起動し, admin データベースにスイッチした後に shutdownServer で停止させる.

$ mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Server has startup warnings:
2018-03-25T16:32:40.524+0900 I CONTROL  [initandlisten]
2018-03-25T16:32:40.525+0900 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-03-25T16:32:40.526+0900 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-03-25T16:32:40.527+0900 I CONTROL  [initandlisten]
> use admin
switched to db admin
> db.shutdownServer()
server should be down...
2018-03-25T16:41:56.674+0900 I NETWORK  [thread1] trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
2018-03-25T16:41:56.675+0900 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2018-03-25T16:41:56.675+0900 I NETWORK  [thread1] reconnect 127.0.0.1:27017 (127.0.0.1) failed failed
> exit
bye

その後

チュートリアルとして「The Little MongoDB Book」を一通り読むと良さそう. 使用している MongoDB のバージョンが2.6とやや古いが記載されている内容の多くは3.6.3でも有効っぽい. explain に2系から3系で大きく変わったので注意.