在 Mysql 中可用通過 affect_rows 來查看本次操作數據庫中受影響的行數,但是在文本型數據庫中怎麼獲取這些信息呢?Or 別的調試方式?
业精于勤,荒于嬉;行成于思,毁于随。
db.runCommand({getLastError: 1})
在輸出 getLastError.n 参数就是受影响的记录。Mongo Manual 是這樣定義的:
getLastError.n
Mongo Manual
n reports the number of documents updated or removed, if the preceding operation was an update or remove operation.
舉例說明: 在一個 collecton 中有兩個如下的記錄
collecton
{ "_id" : ObjectId("533e5cfa8d6728aef1f00111"), "sex" : "male" } { "_id" : ObjectId("533e5d088d6728aef1f00112"), "sex" : "female" }
先 run 一个 update 操作
run
update
db.people.update({ "sex" : "male" }, { "sex" : "unknown"})
再 run getLassError 操作
run getLassError
結果如下:
{ "updatedExisting" : true, "n" : 1, "connectionId" : 1332, "err" : null, "ok" : 1 }
update 操作影响了 1 个记录,所以 n 為 1。 再 run 一个 remove 操作
n
remove
db.people.remove()
{ "n" : 2, "connectionId" : 1332, "err" : null, "ok" : 1 }
remove 操作影响了 2 个记录,所以 n 为 2。此时 "updatedExisting" : true 未在结果中出现,因为该信息只在 update 操作後出現。
"updatedExisting" : true
update 語句傳回的 json 中,鍵為 n 的值就是被修改的行數。 印出來自己看吧、
在輸出
getLastError.n
参数就是受影响的记录。Mongo Manual
是這樣定義的:舉例說明:
在一個
collecton
中有兩個如下的記錄先
run
一个update
操作再
run getLassError
操作結果如下:
update
操作影响了 1 个记录,所以n
為 1。再
run
一个remove
操作結果如下:
remove
操作影响了 2 个记录,所以n
为 2。此时"updatedExisting" : true
未在结果中出现,因为该信息只在update
操作後出現。update 語句傳回的 json 中,鍵為 n 的值就是被修改的行數。
印出來自己看吧、