MongoDBで$pull演算子を使って配列内の要素(ドキュメント)を削除する方法
MongoDBで配列要素(ドキュメント)を削除するには?
MongoDBでは、$pull演算子を使用することで、配列から特定の条件に一致する要素(ドキュメント)を削除できます。この記事では、実際のコード例をもとに、具体的な手順をわかりやすく解説します。
1. ドキュメントを含むコレクションを作成する
まず、insertOne()メソッドを使って、配列フィールドを持つドキュメントを含むコレクションを作成しましょう。
> db.pullAnArrayElementDemo.insertOne(
{
"StudentDetails": [
{ "StudentFirstName":"Chris", "StudentScore":56 },
{ "StudentFirstName":"Robert", "StudentScore":59 }
]
}
);
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd3b55bedc6604c74817cd5")
}
2. 登録済みドキュメントを確認する
find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。
> db.pullAnArrayElementDemo.find().pretty();
上記のクエリを実行すると、次のような出力が得られます。
{
"_id" : ObjectId("5cd3b55bedc6604c74817cd5"),
"StudentDetails" : [
{
"StudentFirstName" : "Chris",
"StudentScore" : 56
},
{
"StudentFirstName" : "Robert",
"StudentScore" : 59
}
]
}
3. $pull演算子で配列要素を削除する
続いて、update()メソッドと$pull演算子を組み合わせて、配列から「StudentFirstName」が「Chris」である要素を削除します。
> db.pullAnArrayElementDemo.update(
{},
{ $pull: { 'StudentDetails': { 'StudentFirstName': 'Chris' } } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
出力結果の「nModified : 1」は、1件のドキュメントが正常に更新されたことを示しています。
4. 削除後の結果を確認する
もう一度find()メソッドを実行して、すべてのドキュメントを表示してみましょう。
> db.pullAnArrayElementDemo.find().pretty();
実行結果は以下の通りです。「Chris」のデータが配列から取り除かれていることが確認できます。
{
"_id" : ObjectId("5cd3b55bedc6604c74817cd5"),
"StudentDetails" : [
{
"StudentFirstName" : "Robert",
"StudentScore" : 59
}
]
}
まとめ
このように、$pull演算子を使えば、配列内の特定の条件に一致するドキュメントを簡単に削除できます。条件にはフィールド名と値を指定するだけでなく、$inや比較演算子なども併用できるため、柔軟な配列操作が可能です。MongoDBで配列データを扱う際は、ぜひ活用してみてください。
-
MongoDBでドキュメント内の配列から特定の値を削除する方法($pull演算子の使い方)
MongoDBで配列から値を削除したい場合は、$pull 演算子を使用します。$pull は、既存の配列から指定した条件に一致する値(または複数の値)のすべてのインスタンスを取り除くための更新演算子です。1. サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成しましょう。> db.demo535.insertOne( ... { ... studentId : 101, ... studentName : Chris, ... ListOfMailIds : [ ... Chris@gmail.com, ... Chr
-
MongoDBで配列の要素を削除するには?$pull演算子の使い方を解説
MongoDBで配列から要素を削除する基本MongoDBで配列内の要素を削除したい場合は、$pull演算子を使用します。$pullは、既存の配列から指定した値、または条件に一致するすべてのインスタンスを取り除くための更新演算子です。この記事では、実際にコレクションを作成し、ネストされた配列から特定の要素を削除する手順を順番に解説します。サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成しましょう。ここでは「software」フィールドの中に「services」という配列を持つドキュメントを挿入します。db.demo541.insertOne({software:{servic