MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBシェルでコレクションの全レコードを削除する方法

MongoDBシェルでコレクションの全レコードを削除するには?

MongoDBシェルでコレクション内のすべてのレコード(ドキュメント)を削除するには、remove()メソッドを使用します。基本の構文は以下のとおりです。

db.yourCollectionName.remove({});

検索条件として空のオブジェクト「{}」を渡すことで、コレクション内のすべてのドキュメントが削除対象になります。

サンプルコレクションの作成

実際の動作を確認するために、まずはドキュメントを含むコレクションを作成しましょう。以下のクエリを実行します。

> db.deleteAllRecordsDemo.insertOne({"StudentName":"John"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f6ca32f684a30fbdfd596")
}
> db.deleteAllRecordsDemo.insertOne({"StudentName":"Carol","StudentAge":21});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f6cb22f684a30fbdfd597")
}
> db.deleteAllRecordsDemo.insertOne({"StudentName":"Mike","StudentAge":23,"Hobby":["Learning","Photography"]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c8f6cde2f684a30fbdfd598")
}

登録済みドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。以下のクエリを実行してみましょう。

> db.deleteAllRecordsDemo.find().pretty();

実行結果は次のとおりです。

{ "_id" : ObjectId("5c8f6ca32f684a30fbdfd596"), "StudentName" : "John" }
{
    "_id" : ObjectId("5c8f6cb22f684a30fbdfd597"),
    "StudentName" : "Carol",
    "StudentAge" : 21
}
{
    "_id" : ObjectId("5c8f6cde2f684a30fbdfd598"),
    "StudentName" : "Mike",
    "StudentAge" : 23,
    "Hobby" : [
        "Learning",
        "Photography"
    ]
}

全レコードの一括削除

それでは、コレクション内の全レコードを削除するクエリを実行します。

> db.deleteAllRecordsDemo.remove({});
WriteResult({ "nRemoved" : 3 })

上記の実行結果にある「nRemoved : 3」という表示から、3件すべてのレコードが正常に削除されたことがわかります。削除後にもう一度find()メソッドを実行すると、何も返ってこなくなります。

> db.deleteAllRecordsDemo.find().pretty();

実行結果:

>

補足:新しいバージョンではdeleteMany()の使用を推奨

MongoDB 4.2以降では、remove()メソッドは非推奨(deprecated)となっています。今後のコーディングでは、同じ動作をするdeleteMany()メソッドを使用するのがおすすめです。

db.yourCollectionName.deleteMany({});

こちらを使えば、将来のMongoDBのバージョンアップにも対応できる、より安全なコードになります。なお、削除操作は元に戻せないため、本番環境で実行する前には必ずデータのバックアップを取ることを忘れないようにしましょう。

  1. MongoDBコレクションの全キー(フィールド名)を取得する方法まとめ

    この記事は2019年1月18日にObjectRocket.com/blogで公開された内容をもとにしています。 MongoDB®のコレクションに含まれるすべてのキーを把握することは、スキーマの検証、フィールド名のタイプミスのデバッグ、設定すべきでないフィールドの発見など、さまざまな場面で役立ちます。本記事では、MongoDBコレクション内の全キー名を取得する複数の方法を、状況別にわかりやすく解説します。 まず検討したい:ODMやマネージドサービスの活用 ObjectRocketをはじめとする多くのMongoDB-as-a-Service事業者は、ユーザーインターフェース(UI)上で簡単にキーを

  2. MongoDBコレクション内の全キー名を取得する方法|MapReduce・Aggregation・シェルなど状況別に解説

    スキーマの検証、フィールド名のタイプミスのデバッグ、設定されるべきではないフィールドの発見などを行うには、まずMongoDBコレクション内にどのようなキーが存在するのかを把握しておく必要があります。多くのMongoDB-as-a-Service事業者は、UI上で手軽にこれを実現できる機能を提供しています(ObjectRocketもそのひとつです)。また、経験豊富なMongoDBユーザーの多くは、JavaScript向けのMongooseやPython向けのMongoengineといったオブジェクトドキュメントマッパー(ODM)を導入しています。ODMを使えば、アプリケーション向けの一貫性のある