3

我需要将此查询从 php 转换为 mongoDB 查询

$query = "select * from table where data_added like '%data%';

我将日期存储在变量中

$date = "2013-09-02";

在我的 mongo 文档中,日期排序为:

$dateAdded = new MongoDate(strtotime('2013-09-02 12:21:55'));

我试过了

$date = new MongoDate(strtotime("$date"));

$mongo->find(array('date_added'=>array('$lt'=>$date)));

and 
$mongo->find(array('date_added'=>$date));

但没有成功。

所以我需要查询 usin (Ymd)而不是(Ymd h:i:s) 所以如何在 mongo 中使用 LIKE 查询数据

谢谢

4

1 回答 1

2

您需要进行范围查询。创建一个时间戳,例如使用 strtotime(),以获取一天开始时的 unix 时间戳,以及另一个和一天结束时的时间戳。

根据您是否希望这两端包含或排除,然后使用

// Both points/seconds inclusive
->find(array("date" => array('$gte' => $startOfDay, '$lte' => $endOfDay)));
// Both seconds exclusive
->find(array("date" => array('$gt' => $startOfDay, '$lt' => $endOfDay)));

http://cookbook.mongodb.org/patterns/date_range/

于 2013-10-22T00:41:35.533 回答