【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}})