概要
MongoDBのインストールからCRUD操作の基本までをまとめました。
インストール(Mac版)
公式のインストールページにて、version、platform、Packageを選択後、インストール、解凍し任意の場所に配置する。
※今回は、version: 4.4.29
、platform: macOS64
、Package: tgz
をインストール後、
/user/database
に配置し、パッケージをmongodb
にリネームしました。
dbディレクトリを作成
インストールした階層にdata/db
ディレクトリを作成します。
ここまでで下記の構成になっています。
/user
└ database
├ mongodb
│ └ bin
│ ├ mongo
│ ├ mongod
│ └ mongos
└ data
└ db
mongodを起動
mongodbを配置した場所へ移動し、ターミナルから下記を実行します。
./mongodb/bin/mongod --dbpath ~/database/data/db
ファイルが開けない旨のセキュリティエラーが出るので、macのシステム設定>プライバシーとセキュリティ>セキュリティ
から許可を実行します。
mongoシェルを起動
./mongodb/bin/mongo
上記、mongodbの起動がうまくいっていないとエラーになります。
私の場合、--dbpath
の指定をしていなくてエラーになっていました。
表示コマンド
db #現在使用しているDB
show dbs #DB一覧を表示
show collections #コレクション一覧を表示
DBを作成(または使用するDBを指定)
use 【データベース名】
Create(データの挿入)
db.【コレクション名】.insert(【配列またはオブジェクト】)
Read(データの読み取り)
db.【コレクション名】.find()
クエリを渡すことで、特定の条件の検索も可能です。
完全一致はデータの{key: value}
の形で渡します。
Update(データの更新)
db.【コレクション名】.updateOne({ 【検索対象のクエリ】 }, {$set: { 【置き換えるkey】: 【置き換え後のvalue】 }})
- 更新時は
$set:{}
を挟む必要があるので注意する - 更新対象が複数ある場合は
updateMany()
を使う -
$currentDate: {lastModified: true}
とすることで更新時刻の設定が可能。※「lastModified」は任意のキーに変更可能
Delete(データの削除)
db.【コレクション名】.deleteOne(【削除対象のクエリ】)
注意: 以下のように空のオブジェクトを渡すとコレクションの全てのデータが削除されます。
db.【コレクション名】.deleteMany({})
演算子
.find()などで対象を絞る際は比較演算子や論理演算子を使用する事で、より柔軟な検索ができる。
例:inventry
コレクションからqty
が20より大きいものを検索
db.inventory.find( { qty: { $gt: 20 } } )