Mongodb lte不使用时间戳
我正在尝试统计收集中日期范围内的文档。我的问题是:Mongodb lte不使用时间戳,mongodb,symfony,doctrine-orm,Mongodb,Symfony,Doctrine Orm,我正在尝试统计收集中日期范围内的文档。我的问题是: $qb ->field('timestamp')->lte($dateRange['to']) ->field('timestamp')->gte($dateRange['from']) ->count() ->getQuery() ->execute(); $dateRange的元素是DateTime具有有效(我已经测试
$qb
->field('timestamp')->lte($dateRange['to'])
->field('timestamp')->gte($dateRange['from'])
->count()
->getQuery()
->execute();
$dateRange的元素是DateTime
具有有效(我已经测试过)日期的对象。Mongo collection有我正在查询的文档。实验暴露出问题出在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"}
如果其他人有这样的问题,我会发布一个对我有用的答案。问题是,我在数据库中有类型为
timestamp
的字段timestamp
,但将\DateTime
对象传递给方法。因此,内部学说似乎是错误的。以下是我所做的:
$qb
->field('timestamp')->range(
new \MongoTimestamp($from->getTimestamp()),
new \MongoTimestamp($to->getTimestamp()))