1

次の更新MongoDBクエリがあり、MongoDBネイティブクライアントを介してNode.jsで実行されます。クエリは正しく機能します-このコードを実行した後、MongoDBでオブジェクトが変更されているのがわかります:

collection.update(
    {
      _id : request.query.person,
    },
    {
      $inc: {
        score : 1
      }
    },
    { safe : true},
    this /* "this" is for Step */
  );

クエリ後にMongoDBで更新されたレコードの数を知りたいのですが。MongoDBでgetLastErrorを実行することで確認できることを確認しましたが、ネイティブクライアントを使用してNode.jsから確認する方法がわかりません。

それを行う方法のヒントはありますか?getLastErrorを呼び出す以外の方法はありますか?

4

1 に答える 1

3

コールバックの2番目のパラメーターupdateは、影響を受けるドキュメントの数です。

collection.update(
    { _id : request.query.person },
    { $inc: { score : 1 }},
    { safe : true},
    function (err, numAffected) {
        ...
    }
);

ネイティブドライバーの2.xバージョンの更新:

コールバックの2番目のパラメーターupdateはネストされたオブジェクトになり、更新されたドキュメントの数はで確認できますresult.nModified。ただしupdate、現在は非推奨になっているため、updateOne代わりに使用する必要があります。

collection.updateOne(
    { _id : request.query.person },
    { $inc: { score : 1 }},
    { safe : true},
    function (err, response) {
        console.log(response.result.nModified);
        // Also available at response.modifiedCount for updateOne, but not update
        console.log(response.modifiedCount);
    }
);

2.xコールバックパラメータのドキュメントはここにあります。

于 2013-03-03T23:52:42.257 に答える