Php 搜索mongodb问题(本地/远程)

Php 搜索mongodb问题(本地/远程),php,mongodb,Php,Mongodb,我在两个不同的环境中使用mongodb数据库和php脚本时遇到问题 第一个环境在本地主机上具有x86 mongodb版本。 第二个环境在远程服务器上具有x64 mongodb版本 php脚本是相同的(在x86 mongodb机器上) IP本地主机为127.0.0.1,本地主机为188。。。。用于远程服务器。在两个mongodb数据库上,都是具有相同数据的相同集合(导入/导出) mongo对象列表对于两台服务器也是相同的…已连接1 Mongo Object ( [connected] =&

我在两个不同的环境中使用mongodb数据库和php脚本时遇到问题

第一个环境在本地主机上具有x86 mongodb版本。 第二个环境在远程服务器上具有x64 mongodb版本

php脚本是相同的(在x86 mongodb机器上)

IP本地主机为127.0.0.1,本地主机为188。。。。用于远程服务器。在两个mongodb数据库上,都是具有相同数据的相同集合(导入/导出)

mongo对象列表对于两台服务器也是相同的…已连接1

Mongo Object
(
    [connected] => 1
    [status] => 
    [server:protected] => 
    [persistent:protected] => 
)
我不明白为什么在本地连接上它会返回一些结果,但在远程服务器上它不会返回记录


请注意,我的笔记本电脑坏了。。。我可以访问数据库(connected=>1)

首先,如果您使用的是1.3或更高版本的驱动程序,我建议使用MongoClient类代替Mongo(因为不推荐使用)

由于已使用指定100000毫秒,脚本的挂起时间不应超过100秒,因为如果驱动程序在该时间内未收到服务器的响应,则应引发MongoCorSortimeoutException

为了进一步调试,我建议先降低超时值,然后比较每个服务器的输出。explain输出应该清楚地表明,如果一台服务器没有使用索引进行查询,正如上面Sammaye所假设的那样

此外,添加以下内容将允许您收集驱动程序内部活动的日志:

MongoLog::setModule(MongoLog::ALL);
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setCallback('print_mongo_log');
function print_mongo_log($a, $b, $c) { echo $c, "\n"; }

它是否会产生某种错误?你能在Mongo控制台中找到这些记录吗?您不需要在脚本中使用$and。日志有什么说明吗?没有错误,我可以在mongo控制台中找到记录。。。。美元和。。我把它拿走了。但还是一样的问题…我只是从另一个问题想,这两个系统之间的索引是什么?
MongoLog::setModule(MongoLog::ALL);
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setCallback('print_mongo_log');
function print_mongo_log($a, $b, $c) { echo $c, "\n"; }