Node.jsMongoDB削除_


ドキュメントを削除

レコード、またはMongoDBで呼び出されるドキュメントを削除するには、この deleteOne()メソッドを使用します。

メソッドの最初のパラメーターは、deleteOne()削除するドキュメントを定義するクエリオブジェクトです。

注:クエリで複数のドキュメントが見つかった場合は、最初に出現したドキュメントのみが削除されます。

アドレスが「Mountain21」のドキュメントを削除します。

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: 'Mountain 21' };
  dbo.collection("customers").deleteOne(myquery, function(err, obj) {
    if (err) throw err;
    console.log("1 document deleted");
    db.close();
  });
});

上記のコードを「demo_delete.js」というファイルに保存し、ファイルを実行します。

「demo_delete.js」を実行します

C:\Users\Your Name>node demo_delete.js

これはあなたにこの結果を与えるでしょう:

1 document deleted


多くを削除

複数のドキュメントを削除するには、この deleteMany()メソッドを使用します。

メソッドの最初のパラメーターは、deleteMany()削除するドキュメントを定義するクエリオブジェクトです。

アドレスが文字「O」で始まるすべてのドキュメントを削除します。

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: /^O/ };
  dbo.collection("customers").deleteMany(myquery, function(err, obj) {
    if (err) throw err;
    console.log(obj.result.n + " document(s) deleted");
    db.close();
  });
});

上記のコードを「demo_delete_many.js」というファイルに保存し、ファイルを実行します。

「demo_delete_many.js」を実行します

C:\Users\Your Name>node demo_delete_many.js

これはあなたにこの結果を与えるでしょう:

2 document(s) deleted

結果オブジェクト

このdeleteMany()メソッドは、実行がデータベースにどのように影響したかに関する情報を含むオブジェクトを返します。

ほとんどの情報を理解することは重要ではありませんが、オブジェクト内の1つのオブジェクトは「結果」と呼ばれ、実行が正常に行われたかどうか、および影響を受けたドキュメントの数を示します。

結果オブジェクトは次のようになります。

{ n: 2, ok: 1 }

このオブジェクトを使用して、削除されたドキュメントの数を返すことができます。

削除されたドキュメントの数を返します。

console.log(obj.result.n);

これにより、次の結果が得られます。

2