MongoDBを触ってみる

f:id:utouto97:20210706233740j:plain

MongoDBを触る準備

今回は、Docker-Composeを使ってMongoDBをセットアップしました。

docker-compose.ymlの中身は↓です。

version: '3'

services:
  mongo:
    image: mongo

あとは、docker-compose upしたら、MongoDBのサーバーが立ちました。
docker-compose exec mongo bashで中に入り操作していきます。

MongoDBを触ってみる

MongoDBをインストールできたら、mongoコマンドでMongoDBを操作することができます。

$ mongo

DB作成・選択

use DB名;とするだけです。
DBの選択だけでなく、作成も自動で行われます。

> use Sample;
switched to db Sample

これでSampleというデータベースを作成できました。
show dbs;でDB一覧を確認することができます。

コレクションの作成

RDBのテーブルにあたるところのコレクションを作っていきます。
コレクションを作成するには、createCollection()を使います。

> db.createCollection('User');
{ "ok" : 1 }

コレクションを作成できました。
show collections;でコレクションの一覧を確認できます。

データの追加

insert()を使って、データを追加します。
JSON形式で渡せば、すきな属性を付与することができます。

> db.User.insert({name: 'Ken', age: 10})
WriteResult({ "nInserted" : 1 })
> db.User.insert({name: 'Mari', gender: 'f'})
WriteResult({ "nInserted" : 1 })

データの一覧を取得

データの一覧を取得して、データが追加されていることを確認します。
データの取得には、find()を使う

> db.User.find()
{ "_id" : ObjectId("611681fa60f9dd4792a46c02"), "name" : "Ken", "age" : 10 }
{ "_id" : ObjectId("6116821a60f9dd4792a46c03"), "name" : "Mari", "gender" : "f" }

find()の第一引数には、条件を指定することができます。

> db.User.find({ gender: 'f' })
{ "_id" : ObjectId("6116821a60f9dd4792a46c03"), "name" : "Mari", "gender" : "f" }

また、演算子も利用できます。

> db.User.find({ age: { $lt: 15 }})
{ "_id" : ObjectId("611681fa60f9dd4792a46c02"), "name" : "Ken", "age" : 10 }

find()の第二引数で取得したい属性を指定できます。

> db.User.find({}, { name:1, _id:0 })
{ "name" : "Ken" }
{ "name" : "Mari" }

データの更新

データの更新はupdate()でできます。
第一引数が条件、第二引数が更新内容です。

> db.User.update({name: 'Ken'}, {age: 15})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.User.find()
{ "_id" : ObjectId("611681fa60f9dd4792a46c02"), "age" : 15 }
{ "_id" : ObjectId("6116821a60f9dd4792a46c03"), "name" : "Mari", "gender" : "f" }

今回はここまで!

終わり