在MongoDB中没有PHP搜索结果?

时间:2014-04-20 03:18:45

标签: php mongodb

我有一个存储DNS日志的数据库。数据存储在集合dnslog中。这是文档结构:

{
    "_id" : ObjectId("53539df1e4b076aa8975840a"), 
    "dateandtime" : ISODate("2014-04-09T03:42:48Z"), 
    "client" : "222.29.72.224", 
    "query" : "www.google.com", 
    "other" : "AAAA"
}

我将近一周的时间存储到数据库中,总计数为821943936; 我有以下PHP脚本来搜索结果:

$m = new MongoClient();
echo "Connection to database successfully"."<br />";
$db = $m->dns;
echo "Datebase dns selected"."<br />";
$collection = $db->dnslog;
echo "Collection selected succsessfully"."<br />";
$startdate = new MongoDate("2014-04-09 11:42:00");
$enddate = new MongoDate("2014-04-09 11:43:00");
$result = $collection->find(array("dateandtime"=>array('$gte'=>$startdate,'$lte'=>$enddate)));
echo $result->count();
foreach($result as $doc){
      echo $doc['client']."<br />";
}

脚本不会返回任何结果。这是脚本的输出。

Connection to database successfully
Datebase dns selected
Collection selected succsessfully

我确信我有指定查询的文档,因为我在使用时可以看到该文档:

db.dnslog.find();

1 个答案:

答案 0 :(得分:0)

您的查询错误。 MongoDate期望UNIX时间戳作为构造函数中的参数:

$startdate = new MongoDate(strtotime("2014-04-09 11:42:00"));
$enddate = new MongoDate(strtotime("2014-04-09 11:43:00"));