我正在尝试计算日期范围内的集合中的文档。这是我的疑问:
$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"}
答案 0 :(得分:0)
如果其他人有这样的问题,我会发一个对我有用的答案。问题是我在类型为timestamp
的db中有字段Timestamp
,但是将\DateTime
个对象传递给了doctrine方法。因此,似乎内部学说的类型错误。这就是我所做的:
$qb
->field('timestamp')->range(
new \MongoTimestamp($from->getTimestamp()),
new \MongoTimestamp($to->getTimestamp()))