Skip to content

MongoDB 一般的なコマンド チートシート

MongoDB は、分散ファイル ストレージに基づいたオープンソースのデータベース システムであり、今日最も人気のある NoSQL データベースの1つです。このチートシートは mongosh CLI での一般的な操作を中心にまとめています。

接続と管理

コマンド 説明
mongosh ローカルポート上の MongoDB に接続する
use <db_name> データベースを切り替え/作成する
db 現在のデータベースを表示する
show dbs すべてのデータベースをリスト表示する
show collections 現在のデータベースのコレクションを表示する
exit Shell を終了する

コレクション操作 (DDL)

コマンド 説明
db.createCollection("users") コレクションを手動で作成する
db.users.drop() 指定したコレクションを削除する
db.users.stats() コレクションの統計を表示する
db.users.renameCollection("people") コレクション名を変更する

ドキュメント操作 (CRUD)

Insert

// ドキュメントを挿入する
db.users.insertOne({ name: "Alice", age: 25 });
db.users.insertMany([{ name: "Bob" }, { name: "Charlie" }]);

Read

// ドキュメントを照会する
db.users.find().pretty(); 
db.users.find({ age: { $gt: 20 } }).sort({ age: 1 }).limit(10); 
db.users.findOne({ name: "Alice" }); 

Update

// ドキュメントを更新する
db.users.updateOne({ name: "Alice" }, { $set: { age: 26 } });
db.users.updateMany({ age: { $lt: 18 } }, { $set: { status: "minor" } });

Delete

// ドキュメントを削除する
db.users.deleteOne({ _id: ObjectId("...") });
db.users.deleteMany({ status: "inactive" });

一般的な演算子

Type Operator 説明
比較 $gt, $gte, $lt, $lte, $ne より大きい, 以上, より小さい, 以下, 等しくない
論理 $and, $or, $not, $nor かつ (And), または (Or), ではない (Not), いずれでもない
フィールド $set, $unset, $inc, $rename 値を設定する, フィールドを削除する, 値を増加させる, フィールド名を変更する
配列 $push, $pop, $pull, $addToSet 配列に追加する, 配列から取り出す, 一致する要素を削除する, 一意な要素を追加する

集計パイプライン

db.orders.aggregate([
  { $match: { status: "A" } },
  { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } }
]);

インデックス管理

コマンド 説明
db.users.createIndex({ name: 1 }) 昇順インデックスを作成する
db.users.createIndex({ email: 1 }, { unique: true }) 一意インデックスを作成する
db.users.getIndexes() すべてのインデックスを表示する
db.users.dropIndex("name_1") インデックスを削除する