嵌套选择Mongodb查询错误

时间:2013-07-16 01:57:44

标签: php sql mongodb

我正在尝试将以下示例从mysql转换为Mongodb。

然而,我陷入了困境。任何投入都将受到高度赞赏。

SQL查询:

$cmd = "SELECT COUNT(*) FROM (SELECT * FROM pkt_tbl WHERE m_out_port= " . $out_port . " AND m_time<=" . $selPointX . " AND m_time>=" . $startTime . ") AS pkt_tbl WHERE m_in_port=" . $i;

Mongodb查询(我做了什么):

    $find_query = array('m_out_port'=>$out_port, 'm_in_port'=>$i,'m_time'=>array('lte' => $selPointX, 'gte'=>$startTime));
$find_projections = count();
$result = $table->find($find_query, $find_projections);

我尝试了什么(除了代码)

我阅读了mongodb文档和其他PHP.NET(Mongodocs),但仍无法找到相关的解决方案。

我不确定它是否正确/我正走在正确的道路上。

请澄清。 - R

1 个答案:

答案 0 :(得分:0)

您需要使用$gte$lte个关键字作为日期范围(大于或等于,小于或等于)。现在,您只选择日期等于startTimeselPointX的记录(因此,如果它们不同,则不会返回任何值)。

将您的时间条件更改为:

'm_time'=>array('$lte' => $selPointX, '$gte'=>$startTime)

如果您需要的时间不包括在内,请使用$gt和/或$lt