【Docker】MongoDBをローカル環境で試してみる

MongoDBのDockerコンテナ作成

MongoDB 7.0.7のイメージからDockerコンテナを作成します。

$ docker run --name MongoDB7 -v /Users/xxxxx/work/DockerTest/MongoDB/data:/db -p 2701:2701 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root -d mongo:7.0.7

起動したDockerコンテナへ接続します。

$ docker exec -it MongoDB7 mongosh -u root -p

コマンド

データベースを表示(show dbs)

test> show dbs
admin   100.00 KiB
config   72.00 KiB
local    72.00 KiB

データベース作成(use)

# use {データーベース名}
> use test_db

データーベース内にコレクションが1つも存在しない場合、そのデーターベース名は一覧に表示されません。

コレクション操作

コレクション一覧(show collections)

test_db> show collections
users

コレクション作成(createCollectioin)

# "users"という名のコレクションを作成
db.createCollection("users")

ドキュメント操作

1つのドキュメントをコレクションへ追加(insertOne)

# コレクションへドキュメントを1追加
db.users.insertOne({id:1, name: 'user1'})

複数ドキュメントをコレクションへ追加(insertMany)

# コレクションへドキュメントを複数追加
db.users.insertMany([{id:10, name: 'user10'}, {id:11, name: 'user11'}, {id:12, name: 'user12'}])

1つのドキュメントを更新(updateOne)

# idが10であるユーザのnameを更新
db.users.updateOne({"id": 10},{$set: {"name": "user10_updated"}})

複数ドキュメントを更新

# idが10以上であるユーザのnameを更新
db.users.updateMany({"id": {"$gte": 10}},{$set: {"name": "user_updated"}})

1つのドキュメントをコレクションから削除(deleteOne)

1つのドキュメントを削除する場合にはdeleteOneを使用します。条件にマッチするドキュメントが複数存在する場合には、条件にマッチした先頭のドキュメントを削除します。

# 条件にマッチする1つのドキュメントを削除
db.users.deleteOne({"id": {"$gt": 10}})

複数ドキュメントをコレクションから削除(deleteMany)

# 条件にマッチする複数ドキュメントを削除
db.users.deleteMany({"id": {"$gt": 10}})

MongoDB

Posted by fanfanta