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

MongoDBでオブジェクトの設定を解除(削除)する方法:$unset演算子の使い方

MongoDBでオブジェクトの設定を解除するには?

MongoDBでドキュメントからオブジェクト(フィールド)を削除したい場合は、更新演算子「$unset」を使用します。この記事では、サンプルコレクションを作成しながら、$unsetでネストされたオブジェクトの設定を解除する手順を順番に解説します。

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

まず、insertOne()メソッドを使って、detailsフィールド内にstudentDetailsオブジェクトを持つドキュメントを2件登録します。

> db.demo348.insertOne(
... {
... "details": {
... "studentDetails":
... {
... StudentName: "Robert"
... }
... }
... });
{
"acknowledged" : true,
"insertedId" : ObjectId("5e553556f8647eb59e5620b2")
}
> db.demo348.insertOne(
... {
... "details": {
... "studentDetails":
... {
... StudentName: "Mike"
... }
... }
... });
{
"acknowledged" : true,
"insertedId" : ObjectId("5e553563f8647eb59e5620b3")
}

2. 登録したドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。

> db.demo348.find();

実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e553556f8647eb59e5620b2"), "details" : { "studentDetails" : { "StudentName" : "Robert" } } }
{ "_id" : ObjectId("5e553563f8647eb59e5620b3"), "details" : { "studentDetails" : { "StudentName" : "Mike" } } }

3. $unsetでオブジェクトの設定を解除する

次のクエリを実行すると、オブジェクトの設定を解除できます。第3引数に「{ multi: true }」を指定することで、条件に一致するすべてのドキュメントが更新対象になります。値として指定する空の文字列「""」は、該当フィールドを削除することを示す$unsetの標準的な書き方です。

> db.demo348.update({},{$unset: { "details.studentDetails": ""}},{multi: true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

なお、MongoDBの新しいバージョンでは、複数のドキュメントをまとめて更新する場合、update()の代わりにupdateMany()メソッドの使用が推奨されています。

4. 更新後のドキュメントを確認する

もう一度find()メソッドを実行して、更新結果を確認しましょう。

> db.demo348.find();

出力を見ると、details内のstudentDetailsオブジェクトが削除され、detailsが空のオブジェクトになっていることがわかります。

{ "_id" : ObjectId("5e553556f8647eb59e5620b2"), "details" : { } }
{ "_id" : ObjectId("5e553563f8647eb59e5620b3"), "details" : { } }

まとめ

MongoDBでオブジェクトやフィールドを削除するには、$unset演算子を使用します。ドット記法(details.studentDetails)を使えば、ネストされた深い階層のフィールドも指定可能です。さらに「{ multi: true }」オプションを付ければ、条件に一致した全ドキュメントに対して一括で設定解除を行えます。

  1. MongoDBでコレクションを削除(ドロップ)する方法をわかりやすく解説

    MongoDBでコレクションを削除(ドロップ)するには、drop()メソッドを使用します。基本的な構文は以下のとおりです。db.yourCollectionName.drop();この構文を実行すると、コレクションの削除が成功した場合は true、失敗した場合(コレクションが存在しないときなど)は false が返されます。事前準備:データベースとコレクションの一覧を確認するまず、MongoDB内にどのようなコレクションがあるのかを確認してみましょう。ここでは、複数のコレクションを含む「sample」というデータベースを例に説明します。最初に、以下のコマンドで「sample」データベースへ切り

  2. MongoDBでコンソールをクリアする2つの方法|ショートカット「Ctrl + L」とコマンド「cls」の使い方

    MongoDBのシェル(mongo / mongosh)を使っていると、実行したクエリや結果がどんどん積み重なり、画面が見づらくなることがあります。そんなときに便利なのがコンソールのクリア機能です。MongoDBでは、以下の2つの方法でコンソールをクリアできます。 方法1:キーボードショートカット「Ctrl + L」を使う 最も手軽なのが、キーボードショートカットを使う方法です。次のキーを押すだけで、即座にコンソールをクリアできます。 Ctrl + L このキーを押すと、それまで表示されていたログや実行結果がすべて消え、まっさらな状態になります。Linuxのターミナルなどと同じ操作感なので、