嗨,伙计们,我是mongodb的新手,在比较我收藏的日期时遇到了一些问题。我有一个事件集合,其中dateCreated字段将新的MongoDate()存储为
"dateCreated": ISODate("2013-11-13T05: 23: 45.0Z") 现在我想要今天创建的活动之一。为此,我尝试在yii框架中进行查询,如
$db->event->findOne(array('dateCreated' => new MongoDate()));但是它返回null,我猜这是由于比较dateCreated中存储的时间值失败造成的。因此,有谁能建议如何只比较日期,而不是时间与MongoDate()。
提前谢谢。
发布于 2013-11-13 06:22:47
要查询今天创建的内容,您需要使用Mongo $gt和$lt运算符在PHP中的“今天”范围内搜索dateCreated键:
$db->event->findOne(array('dateCreated' => array('$gt' => new MongoDate(strtotime("midnight")), '$lt' => new MongoDate(strtotime("11:59PM")))));发布于 2013-11-13 06:18:27
这将返回null,因为您正在搜索刚刚创建的集合。
你也要去找带日期的范围查询。
所以您需要像这样修改它:
$db->event->findOne(
array('dateCreated' => array(
'$gte' => timestamp of the current day
))
);据我所知,您可以这样找到当前一天的时间戳:
mktime(0, 0, 0, date('n'), date('j')); 但在这方面我可能错了。
https://stackoverflow.com/questions/19946645
复制相似问题