我正在尝试将以下示例从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
答案 0 :(得分:0)
您需要使用$gte
和$lte
个关键字作为日期范围(大于或等于,小于或等于)。现在,您只选择日期等于startTime
和selPointX
的记录(因此,如果它们不同,则不会返回任何值)。
将您的时间条件更改为:
'm_time'=>array('$lte' => $selPointX, '$gte'=>$startTime)
如果您需要的时间不包括在内,请使用$gt
和/或$lt
。