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") |
インデックスを削除する |