概要
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 } } )