Node.jsMongoDBアップデート_


ドキュメントの更新

updateOne()このメソッドを使用して、MongoDBで呼び出されたレコードまたはドキュメントを更新できます。

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

注:クエリで複数のレコードが見つかった場合は、最初のオカレンスのみが更新されます。

2番目のパラメーターは、ドキュメントの新しい値を定義するオブジェクトです。

アドレス「Valley345」のドキュメントをname = "Mickey"およびaddress = "Canyon123"に更新します。

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

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: "Valley 345" };
  var newvalues = { $set: {name: "Mickey", address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
    if (err) throw err;
    console.log("1 document updated");
    db.close();
  });
});

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

「demo_update_one.js」を実行します

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

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

1 document updated


特定のフィールドのみを更新する

演算子を使用する$setと、指定されたフィールドのみが更新されます。

アドレスを「Valley345」から「Canyon123」に更新します。

...
  var myquery = { address: "Valley 345" };
  var newvalues = { $set: { address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
...

多くのドキュメントを更新する

クエリの条件を満たすすべてのドキュメントを更新するには、このupdateMany()メソッドを使用します。

名前が文字「S」で始まるすべてのドキュメントを更新します。

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

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: /^S/ };
  var newvalues = {$set: {name: "Minnie"} };
  dbo.collection("customers").updateMany(myquery, newvalues, function(err, res) {
    if (err) throw err;
    console.log(res.result.nModified + " document(s) updated");
    db.close();
  });
});

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

「demo_update_many.js」を実行します

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

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

2 document(s) updated

結果オブジェクト

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

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

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

{ n: 1, nModified: 2, ok: 1 }

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

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

console.log(res.result.nModified);

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

2