MongoDB 中如何查看被修改的行数

 --AppleChan-- 发布于 2022-10-26 16:03

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

2 个回答
  • update 语句返回的 json 中,键为 n 的值就是被修改的行数。
    打印出来自己看吧、

    2022-10-27 01:17 回答
  • 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 操作后出现。

    2022-10-27 01:17 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有