1

我认为这应该是非常基本的,但我在 php 文档中找不到它,也许我看起来不够努力。

如何确定 MongoClient/MongoDB/MongoCollection/MongoCursor 实际连接到的主机?我的连接字符串有一个主机和从机的 csv,我希望它工作正常,但我只是想要一些验证。

像 $db->getHost() 之类的东西,所以我可以在我的查询中添加一个调试钩子,并了解读取是如何分布的。

谢谢

4

2 回答 2

0

未经测试,但尝试以下方式: $db->command(array('serverStatus'=>1));

返回数组,如:

    "host" : "<hostname>",
    "version" : "<version>",
    "process" : "<mongod|mongos>",
    "pid" : <num>,
    "uptime" : <num>,
    "uptimeMillis" : <num>,
    "uptimeEstimate" : <num>,
    "localTime" : ISODate(""),

可能需要一些关于...参考: http ://docs.mongodb.org/manual/reference/server-status/#server-status-example-instance-information

和: http ://www.php.net/manual/en/mongodb.command.php

于 2013-09-10T17:52:17.820 回答
0

没有一种简单的方法可以让您知道驱动程序正在使用哪个确切的连接。例如,它有很多逻辑可以根据延迟和读取偏好在连接之间切换。

实现这一点的最佳方法是使用 Stream Notification 接口。该界面为您提供了非常强大的调试和记录操作的方法。这是在 1.4.0 中引入的,尽管它仍然没有记录(抱歉!)原始拉取请求描述了您可以将侦听器挂钩到流上下文中的各个操作的原型,并且测试用例希望能更好地概述其功能.

这个界面也将在即将到来的 1.5.0 系列中得到改进,其中包含基于这些流的各种好东西

于 2013-10-18T23:17:51.767 回答