LoginSignup
2
0

More than 1 year has passed since last update.

MongoDBのCRUD操作を整理

Posted at

きっかけ

  • MongoDBのCRUD操作について、自分自身の整理のために一度まとめを実施

環境

  • MongoDB V4.4.17

DB作成・切り替え

# DB作成
use [DB名];

# DB切替
use [DB名]; (存在しないDBの場合は新規でDBが作成される)

# DB一覧確認
show dbs

#現在のDBを確認
db.stats()

CRUD操作とは

CRUDはデータを操作する4つの基本機能の頭文字を取ったもの。
4つとはCreate(作成)、Read(読み取り)、Update(更新)、Delete(削除)

DBにデータの作成(Create)

  • db.コレクション名.insertOne({key: value}) =>1つのデータのみ作成可能
  • db.コレクション名.insertMany([{key: value}, {key: value}])  =>複数のデータを作成可能
  • db.コレクション名.insert([{key: value}, {key: value}]) =>1つと複数のどちらでも作成可能
db.sample.insert([{name:'村上',team:'ヤクルト',homeRun:55},{name:'岡本',team:'巨人',homeRun:28},{name:'丸',team:'巨人',homeRun:27}])

// 複数のデータを作成する場合は配列の中にオブジェクトを作成すること

DBのデータの読み取り(Read)

  • db.コレクション名.findone(検索条件,射影) =>1つのデータのみ読取する場合に利用
  • db.コレクション名.find(検索条件,射影)
// 処理名
db.sample.find({name:'村上'})

// 結果
{ "_id" : ObjectId("632901c8ba80d3398393536e"), "name" : "村上", "team" : "ヤクルト", "homeRun" : 55 }

DBのデータの更新(update)

  • db.コレクション名.updateOne({検索条件}, {更新内容}) =>1つのデータを更新する場合に利用
  • db.コレクション名.updateMany({検索条件}, {更新内容}) =>複数のデータを更新する場合に利用
// 処理名
db.sample.updateOne({name:'村上'},{$set:{homeRun:60}})

// 結果
{ "_id" : ObjectId("632901c8ba80d3398393536e"), "name" : "村上", "team" : "ヤクルト", "homeRun" : 60 }

DBにデータの削除(Delete)

*db.コレクション名.deleteOne({key: value}) =>単一データを削除する場合に利用
*db.コレクション名.deleteMany({key: value}) =>複数のデータを削除する場合に利用

MongoDBで使える演算子

比較演算子

name 説明
$eq 一致するレコードを表示する(equal to)
$gt より大きいレコードを表示する(greater than)
$gte 以上のレコードを表示する(greater than or equal to)
$lt より小さいレコードを表示する(less than)
$lte 以下のレコードを表示する(less than or equal to)

論理演算子

name 説明
$and 全ての条件にあてはまるレコードを表示する
$or 一つでも条件にあてはまるレコードを表示する
$nor 2つの条件のうちどちらにもあてはまらないレコードを表示する
$not 不随した条件にあてはまらないレコードを表示する

学んだこと

  • MongoDBのDB作成方法・切り替え方法
  • MongoDBにおけるCRUD操作方法
  • MongoDBで使える演算子
2
0
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
2
0