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

在 Mysql 中可用通過 affect_rows 來查看本次操作數據庫中受影響的行數,但是在文本型數據庫中怎麼獲取這些信息呢?Or 別的調試方式?

迷茫
迷茫

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

全部回覆(2)
阿神
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 操作後出現。

大家讲道理

update 語句傳回的 json 中,鍵為 n 的值就是被修改的行數。
印出來自己看吧、

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板