我有许多文档,其中包含一个名为“date”的字段,它只是一个unix时间戳。 在锂,我想找到给定日期范围内的所有文件。我目前正在尝试以下方法:
//$_stats contains two \DateTime objects which are properly initialized
$transactions = Transactions::all(
array('conditions' => array(
'tags' => array('$all' => array((string)$tag->_id)),
'date' => array('$gte' => array((int)$_stats['date_start']->getTimestamp()), '$lte' => array((int)$_stats['date_end']->getTimestamp()))
))
);
但这会返回零文件。当我删除“日期”条件时,它工作正常,我得到所有文件。
我错过了什么?
谢谢,aenogym
答案 0 :(得分:1)
似乎没有必要提供一系列日期,所以也许尝试:
$transactions = Transactions::all(
array('conditions' => array(
'tags' => array('$all' => array((string)$tag->_id)),
'date' => array('$gte' => (int)$_stats['date_start']->getTimestamp(), '$lte' => (int)$_stats['date_end']->getTimestamp())
))
);
请记住,MongoDate将日期存储为毫秒,而时间戳则使用秒。换句话说,MongoDate具有更高的精度。