You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP的mongodb/driver获取local.oplog.rs的count统计值

问题原因

你原有的代码逻辑错误:db.oplog.rs.stats()本质是MongoDB提供的集合统计命令,不属于普通的文档查询场景,因此不能用MongoDB\Driver\Query配合executeQuery实现,需要使用命令类执行collStats指令。

正确实现代码

// 初始化MongoDB连接,有鉴权需求请传入对应连接串
$mongo_connection = new MongoDB\Driver\Manager();

// 构造统计命令,对应shell中的db.oplog.rs.stats()
$statsCommand = new MongoDB\Driver\Command([
    'collStats' => 'oplog.rs'
]);

// 对local库执行统计命令,注意第一个参数为库名,不是集合全称
$resCursor = $mongo_connection->executeCommand('local', $statsCommand);

// 从游标中提取统计结果
$statsResult = $resCursor->toArray()[0];

// 输出你需要的count值
var_dump($statsResult->count);

注意事项

  • 执行命令的executeCommand方法第一个参数为数据库名,要统计的集合名直接写在collStats的参数值中即可,不要传「库.集合」格式的字符串
  • 命令执行返回的是游标对象,需要调用toArray()方法转换为数组后取首个元素,就是完整的统计结果,除了count外,shell中stats返回的size、storageSize等字段都可以直接读取
  • 如果MongoDB开启了身份验证,初始化Manager时需要传入带账号密码的连接串,格式为mongodb://用户名:密码@主机地址:端口

内容的提问来源于stack exchange,提问作者Slabuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:45:03