LoginSignup
0
1

MongoDBを触ってみる

Posted at

概要

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 } } )
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1