首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只适用于日期的MongoDate比较

只适用于日期的MongoDate比较
EN

Stack Overflow用户
提问于 2013-11-13 06:12:01
回答 2查看 2K关注 0票数 0

嗨,伙计们,我是mongodb的新手,在比较我收藏的日期时遇到了一些问题。我有一个事件集合,其中dateCreated字段将新的MongoDate()存储为

代码语言:javascript
复制
"dateCreated": ISODate("2013-11-13T05: 23: 45.0Z") 

现在我想要今天创建的活动之一。为此,我尝试在yii框架中进行查询,如

代码语言:javascript
复制
$db->event->findOne(array('dateCreated' => new MongoDate()));

但是它返回null,我猜这是由于比较dateCreated中存储的时间值失败造成的。因此,有谁能建议如何只比较日期,而不是时间与MongoDate()。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-13 06:22:47

要查询今天创建的内容,您需要使用Mongo $gt$lt运算符在PHP中的“今天”范围内搜索dateCreated键:

代码语言:javascript
复制
$db->event->findOne(array('dateCreated' => array('$gt' => new MongoDate(strtotime("midnight")), '$lt' => new MongoDate(strtotime("11:59PM")))));
票数 2
EN

Stack Overflow用户

发布于 2013-11-13 06:18:27

这将返回null,因为您正在搜索刚刚创建的集合。

你也要去找带日期的范围查询。

所以您需要像这样修改它:

代码语言:javascript
复制
$db->event->findOne(
  array('dateCreated' => array(
    '$gte' => timestamp of the current day
  ))
);

据我所知,您可以这样找到当前一天的时间戳:

代码语言:javascript
复制
mktime(0, 0, 0, date('n'), date('j')); 

但在这方面我可能错了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19946645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档