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のバージョンアップにも対応できる、より安全なコードになります。なお、削除操作は元に戻せないため、本番環境で実行する前には必ずデータのバックアップを取ることを忘れないようにしましょう。
-
MongoDBコレクションの全キー(フィールド名)を取得する方法まとめ
この記事は2019年1月18日にObjectRocket.com/blogで公開された内容をもとにしています。 MongoDB®のコレクションに含まれるすべてのキーを把握することは、スキーマの検証、フィールド名のタイプミスのデバッグ、設定すべきでないフィールドの発見など、さまざまな場面で役立ちます。本記事では、MongoDBコレクション内の全キー名を取得する複数の方法を、状況別にわかりやすく解説します。 まず検討したい:ODMやマネージドサービスの活用 ObjectRocketをはじめとする多くのMongoDB-as-a-Service事業者は、ユーザーインターフェース(UI)上で簡単にキーを
-
MongoDBコレクション内の全キー名を取得する方法|MapReduce・Aggregation・シェルなど状況別に解説
スキーマの検証、フィールド名のタイプミスのデバッグ、設定されるべきではないフィールドの発見などを行うには、まずMongoDBコレクション内にどのようなキーが存在するのかを把握しておく必要があります。多くのMongoDB-as-a-Service事業者は、UI上で手軽にこれを実現できる機能を提供しています(ObjectRocketもそのひとつです)。また、経験豊富なMongoDBユーザーの多くは、JavaScript向けのMongooseやPython向けのMongoengineといったオブジェクトドキュメントマッパー(ODM)を導入しています。ODMを使えば、アプリケーション向けの一貫性のある