Node.js Mongoose:findByIdAndDelete() vs. findOneAndDelete()
Node.js Mongooseを使ってドキュメントを削除する方法
deleteOne()
メソッドは、指定された条件に一致する最初のドキュメントを削除します。
const mongoose = require('mongoose');
const schema = new mongoose.Schema({
name: String,
age: Number
});
const Model = mongoose.model('Model', schema);
// 名前が "太郎" のドキュメントを削除
Model.deleteOne({ name: '太郎' }).then(() => {
console.log('ドキュメントを削除しました');
});
// 年齢が 20 歳以上のドキュメントを削除
Model.deleteMany({ age: { $gt: 20 } }).then(() => {
console.log('ドキュメントを削除しました');
});
findByIdAndDelete()
メソッドは、_idフィールドの値に基づいてドキュメントを削除します。
// _id が "1234567890" のドキュメントを削除
Model.findByIdAndDelete('1234567890').then(() => {
console.log('ドキュメントを削除しました');
});
// 名前が "太郎" のドキュメントを削除
Model.findOneAndDelete({ name: '太郎' }).then((doc) => {
console.log('ドキュメントを削除しました:', doc);
});
オプション
これらのメソッドには、オプションを指定することができます。
lean
: true にすると、削除されたドキュメントをプレーンな JavaScript オブジェクトとして返します。session
: セッションオブジェクトを指定すると、トランザクション内でドキュメントを削除することができます。
詳細は、Mongoose のドキュメントを参照してください。
deleteOne() メソッド
const mongoose = require('mongoose');
const schema = new mongoose.Schema({
name: String,
age: Number
});
const Model = mongoose.model('Model', schema);
// 名前が "太郎" のドキュメントを削除
Model.deleteOne({ name: '太郎' }).then(() => {
console.log('ドキュメントを削除しました');
});
deleteMany() メソッド
// 年齢が 20 歳以上のドキュメントを削除
Model.deleteMany({ age: { $gt: 20 } }).then(() => {
console.log('ドキュメントを削除しました');
});
findByIdAndDelete() メソッド
// _id が "1234567890" のドキュメントを削除
Model.findByIdAndDelete('1234567890').then(() => {
console.log('ドキュメントを削除しました');
});
findOneAndDelete() メソッド
// 名前が "太郎" のドキュメントを削除
Model.findOneAndDelete({ name: '太郎' }).then((doc) => {
console.log('ドキュメントを削除しました:', doc);
});
実行方法
- 上記のコードをファイルに保存します。
- 必要なモジュールをインストールします。
npm install mongoose
- MongoDB に接続します。
mongoose.connect('mongodb://localhost:27017/test');
- コードを実行します。
node delete.js
出力例
ドキュメントを削除しました
ドキュメントを削除する他の方法
Model.prototype.remove()
メソッドは、モデルのインスタンスに対して呼び出すことで、ドキュメントを削除することができます。
const model = new Model({
name: '太郎',
age: 20
});
model.save().then(() => {
// ドキュメントを削除
model.remove();
});
Model.collection.drop()
メソッドは、コレクション全体を削除します。
Model.collection.drop().then(() => {
console.log('コレクションを削除しました');
});
javascript node.js mongodb