Delete Documents
Overview
このガイドでは、Lambda 統合を使用してMongoDBコレクションからドキュメントを削除する方法を学習できます。削除操作を使用して、 MongoDBデータベースからデータを削除します。
このセクションでは、次の削除操作の例を示します。
サンプル モデル
このガイドの操作は、次の Elastic モデルクラス を参照。
namespace App\Models; use MongoDB\Laravel\Eloquent\Model; class Concert extends Model { protected $connection = 'mongodb'; protected $fillable = ['performer', 'venue', 'genres', 'ticketsSold', 'performanceDate']; protected $casts = ['performanceDate' => 'datetime']; }
単一ドキュメントの削除
次の方法で 1 つのドキュメントを削除できます。
モデルのインスタンスで
$model->delete()
メソッドを呼び出します。delete()
メソッドを呼び出して、モデルの インスタンスを検索して削除するためのメソッドのチェーン。削除するドキュメントの
_id
値を渡して、モデルでModel::destroy($id)
メソッドを呼び出します。
delete() メソッド
次の例では、 モデルのインスタンスで$model->delete()
を呼び出してドキュメントを削除する方法を示しています。
$concert = Concert::first(); $concert->delete();
delete()
メソッドが成功すると、操作は削除されたドキュメントの数を返します。
呼び出しの検索部分がコレクション内のどのドキュメントにも一致しない場合、操作は0
を返します。
次の例は、呼び出しを連鎖させて最初に一致するドキュメントを検索して削除する方法を示しています。
Concert::where('venue', 'Carnegie Hall') ->limit(1) ->delete();
注意
orderBy()
呼び出しは、一貫したソート順序を保証するために、結果を_id
フィールドでソートします。 MongoDB でのソートの詳細については、サーバー マニュアルの「自然な順序」の用語集でのエントリを参照してください。
delete()
メソッドが成功すると、削除されたドキュメントの数が返されます。
where()
メソッドがどのドキュメントにも一致しない場合、 delete()
メソッドは0
を返します。
delete() メソッド
次の例では、_id
値の値を Model::destroy($id)
メソッドに渡してドキュメントを削除する方法を示しています。
$id = 'MSG-0212252000'; Concert::destroy($id);
destroy()
メソッドが成功すると、削除されたドキュメントの数が返されます。
_id
の値がどのドキュメントにも一致しない場合、destroy()
メソッドは 0
を返します。
複数のドキュメントの削除
複数のドキュメントを次の方法で削除できます。
削除するドキュメントまたはモデル インスタンスの ID のリストを渡して、
Model::destroy($ids)
メソッドを呼び出します。メソッドをチェーンして、複数のオブジェクトを参照する Lambda コレクション オブジェクトを取得し、
delete()
メソッドを呼び出してそれらを削除します。
delete() メソッド
次の例では、$ids
で表される _id
値の配列を destroy()
メソッドに渡してドキュメントを削除する方法を示しています。
$ids = [3, 5, 7, 9]; Concert::destroy($ids);
Tip
大きなリストを渡されると、 destroy()
メソッドのパフォーマンスが低下します。 パフォーマンスを向上させるには、代わりにModel::whereIn('id', $ids)->delete()
を使用してください。
destroy()
メソッドが成功すると、削除されたドキュメントの数が返されます。
_id
の値がどのドキュメントにも一致しない場合、destroy()
メソッドは 0
を返します。
delete() メソッド
次の例は、呼び出しを連鎖させて一致するドキュメントを検索して削除する方法を示しています。
Concert::where('ticketsSold', '>', 7500) ->delete();
delete()
メソッドが成功すると、削除されたドキュメントの数が返されます。
where()
メソッドがどのドキュメントにも一致しない場合、 delete()
メソッドは0
を返します。
詳細情報
Lambel 統合で使用可能な削除動作を変更する Lambel 機能の詳細については、次のセクションを参照してください。
Lambda 統合を使用してドキュメントを削除する方法を示す実行可能なコード例については、次の使用例を参照してください。