MongoDB 中如何查看被修改的行数
迷茫
迷茫 2017-04-22 08:59:51
0
2
715

在 Mysql 中可用通过 affect_rows 来查看本次操作数据库中受影响的行数,但是在文本型数据库中怎么获取这些信息呢?Or 别的调试方式?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(2)
阿神

リーリー

出力では、getLastError.n パラメーターが影響を受けるレコードです。 Mongo マニュアル は次のように定義されています: getLastError.n 参数就是受影响的记录。Mongo Manual 是这样定义的:

db.runCommand({getLastError: 1})

举例说明:
在一个 collecton 中有两条如下的记录

n reports the number of documents updated or removed, if the preceding operation was an update or remove operation.

run 一个 update 操作

{ "_id" : ObjectId("533e5cfa8d6728aef1f00111"), "sex" : "male" }
{ "_id" : ObjectId("533e5d088d6728aef1f00112"), "sex" : "female" }

run getLassError 操作

db.people.update({ "sex" : "male" }, { "sex" : "unknown"})

结果如下:

db.runCommand({getLastError: 1})

update 操作影响了 1 个记录,所以 n 为 1。
run 一个 remove 操作

{
    "updatedExisting" : true,
    "n" : 1,
    "connectionId" : 1332,
    "err" : null,
    "ok" : 1
}

结果如下:

db.people.remove()

remove 操作影响了 2 个记录,所以 n 为 2。此时 "updatedExisting" : true 未在结果中出现,因为该信息只在 update リーリー

例:
コレクションには次の2つのレコードがあります🎜 リーリー 🎜まず、update オペレーションを run します🎜 リーリー 🎜getLassError の実行 操作を繰り返します🎜 リーリー 🎜結果は以下の通りです: 🎜 リーリー 🎜update 操作は 1 つのレコードに影響したため、n は 1 になります。
次に、remove オペレーションを run します🎜 リーリー 🎜結果は以下の通りです: 🎜 リーリー 🎜remove 操作は 2 つのレコードに影響したため、n は 2 になります。現時点では、 "updatedExisting" : true は結果に表示されません。これは、この情報は update 操作の後にのみ表示されるためです。 🎜
いいねを押す +0
大家讲道理

update ステートメントによって返される json では、キー n の値が変更された行の数です。
印刷して自分の目で確認してください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート