不使用时间戳

时间:2014-10-15 13:44:14

标签: mongodb symfony doctrine-orm

我正在尝试计算日期范围内的集合中的文档。这是我的疑问:

$qb
        ->field('timestamp')->lte($dateRange['to'])
        ->field('timestamp')->gte($dateRange['from'])
        ->count()
        ->getQuery()
        ->execute();

$ dateRange的元素是DateTime个有效(我已经测试过)日期的对象。 Mongo集合包含我正在查询的文档。试验暴露出问题的方法是lte方法 - 当我只使用gte时,一切正常。还测试了range()方法 - 它也不起作用。有什么想法吗?

由学说构成的查询如下:

{"count":true,"query":{"timestamp":{"$lte":{"sec":1413380708,"usec":0},"$gte":{"sec":1413380108,"usec":0}}},"limit":0,"skip":0,"db":"test","collection":"activity_log"}

1 个答案:

答案 0 :(得分:0)

如果其他人有这样的问题,我会发一个对我有用的答案。问题是我在类型为timestamp的db中有字段Timestamp,但是将\DateTime个对象传递给了doctrine方法。因此,似乎内部学说的类型错误。这就是我所做的:

$qb
        ->field('timestamp')->range(
            new \MongoTimestamp($from->getTimestamp()),
            new \MongoTimestamp($to->getTimestamp()))