MongoDB: ターミナルからコマンド操作する

プログラミング
スポンサーリンク




備忘録

MongoDBをターミナルからコマンド操作する

 

スポンサーリンク

環境

MacOS Big Sur 11.6

homebrewを使用してmongodb-communityをインストール

 

MongoDBの特徴

  • NoSQLで構築されたデータベースの一種
  • ドキュメント指向データベースで、ドキュメントをJSON形式で扱う
  • 大量のトラフィックでも高いパフォーマンスを発揮するため、大規模な開発に向いている。

 

コマンド一覧

基本コマンド

バージョン確認

mongo --version

 

設定確認

cat /usr/local/etc/mongod.conf

 

起動

brew services start mongodb-community

 

サーバ接続

mongo

 

サーバ切断

exit

 

終了

brew services stop mongodb-community

 

データベース操作

作成

use dbname

 

一覧表示

show dbs

 

削除

use dbname

db.dropDatabase()

 

コレクション操作

作成

db.createCollection("collection_name");

 

一覧

show collections

 

更新

db.old_name.renameCollection("new_name", true) 
  • 第二引数 … 更新前コレクションを削除しない: true / 削除する: false

 

削除

db.collection_name.drop()

 

ドキュメント操作

作成

db.collection_name.insert(document)

 

検索

db.collection_name.find({field_name: {ope: value}})

 

更新

db.collectionName.update({fieldName: {ope: old_val}, {$set: {fieldName: new_val}}, {upsert: false, multi:true})
  • 第一引数 … 更新条件
  • 第二引数 … 更新後の値
  • 第三引数 … upsert … ない場合条件に合致する値を挿入するか, multi … 全て更新するか(false … 最初のみ)

 

削除

db.collectionName.remove({fieldName: {ope: old_val})

 

ope一覧

ope 意味

$eq

イコール(=)

$gt

より大きい(>)

$gte

以上(>=)

$lt

より小さい(<)

$lte

以下(<=)

$ne

ノットイコール(!=)
$regex 正規表現

 

使用例

起動してサーバ接続

>brew services start mongodb-community
>mongo

 

DB: sakuraを作成

> use sakura

switched to db sakura

 

コレクション: memberを作成

コレクションを一覧表示

コレクション名をmemberからmembersに変更

> db.createCollection("member")

{ "ok" : 1 }

> show collections

member

> db.member.renameCollection("members", true)

{ "ok" : 1 }

> show collections

members

 

ドキュメント①を作成 name: “藤吉夏鈴”, age: 20

ドキュメント②を作成 name: “増本綺良”, age: 19

ドキュメントを一覧表示

ageが19以下のドキュメントを一覧表示

※2021/10/17時点

> db.members.insert({name: "藤吉夏鈴", age: 20})

WriteResult({ "nInserted" : 1 })

> db.members.insert({name: "増本綺良", age: 19})

WriteResult({ "nInserted" : 1 })

> db.members.find()

{ "_id" : ObjectId("xxxxx"), "name" : "藤吉夏鈴", "age" : 20 }

{ "_id" : ObjectId("yyyyy"), "name" : "増本綺良", "age" : 19 }

> db.members.find({age: {$lte: 19}})

{ "_id" : ObjectId("yyyyy"), "name" : "増本綺良", "age" : 19 }

 

かりんちゃんのageを19に変更

かりんちゃんのageを20に戻す

> db.members.update({name: {$eq: "藤吉夏鈴"}}, {$set: {age: 19}}, {update: false, multi: true})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.members.find()

{ "_id" : ObjectId("xxxxx"), "name" : "藤吉夏鈴", "age" : 19 }

{ "_id" : ObjectId("yyyyy"), "name" : "増本綺良", "age" : 19 }

> db.members.update({name: {$eq: "藤吉夏鈴"}}, {$set: {age: 20}}, {update: false, multi: true})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.members.find()

{ "_id" : ObjectId("xxxxx"), "name" : "藤吉夏鈴", "age" : 20 }

{ "_id" : ObjectId("yyyyy"), "name" : "増本綺良", "age" : 19 }

 

コレクション”members”を削除

データベース”sakura”を削除

> db.members.drop()

true

> db.dropDatabase()

{ "ok" : 1 }

 

サーバ切断して終了

exit

brew services stop mongodb-community

 

 

タイトルとURLをコピーしました