在 Mysql 中可用通過 affect_rows 來查看本次操作數據庫中受影響的行數,但是在文本型數據庫中怎麼獲取這些信息呢?Or 別的調試方式?
阿神2017-04-22 09:01:51
db.runCommand({getLastError: 1})
在輸出 getLastError.n
参数就是受影响的记录。Mongo Manual
是這樣定義的:
n reports the number of documents updated or removed, if the preceding operation was an update or remove operation.
舉例說明:
在一個 collecton
中有兩個如下的記錄
{ "_id" : ObjectId("533e5cfa8d6728aef1f00111"), "sex" : "male" }
{ "_id" : ObjectId("533e5d088d6728aef1f00112"), "sex" : "female" }
先 run
一个 update
操作
db.people.update({ "sex" : "male" }, { "sex" : "unknown"})
再 run getLassError
操作
db.runCommand({getLastError: 1})
結果如下:
{
"updatedExisting" : true,
"n" : 1,
"connectionId" : 1332,
"err" : null,
"ok" : 1
}
update
操作影响了 1 个记录,所以 n
為 1。
再 run
一个 remove
操作
db.people.remove()
結果如下:
{
"n" : 2,
"connectionId" : 1332,
"err" : null,
"ok" : 1
}
remove
操作影响了 2 个记录,所以 n
为 2。此时 "updatedExisting" : true
未在结果中出现,因为该信息只在 update
操作後出現。