长时间阅读,第一次提问者...
使用PHP查询我们的MongoDB页面访问日志,我想在两个时间段之间获取一组记录,但排除具有特定userAgent的结果。 我已经弄清楚了时间范围,但找不到任何解释排除的地方。
以下是到目前为止我对查询的内容:
$dateRange = $collection->find(array("timeStamp" => array('$gt' => $start,
'$lt' => $end)));
查找代码以完成查找功能以排除以"ELB"开头的"userAgent"的记录
您要
查找的是$ne还是$nin,具体取决于要排除的值是单个值还是值数组。 例如:
$dateRange = $collection->find(array("timeStamp" => array('$gt' => $start, '$lt' => end), 'userAgent' => array('$ne' => new MongoRegex('/^ELB/'))));
文档在这里:
http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24nehttp://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24nin
您可以将{$not: /^ELB/}
附加到 mongo 查询中。
不太确定等效的PHP,但请尝试这样的事情:
$dateRange = $collection->find(array(
'timeStamp' => array(
'$gt' => $start,
'$lt' => $end
),
'userAgent' => array(
'$not' => new MongoRegex('/^ELB/')
)
));