当前位置: 首页 > 知识库问答 >
问题:

使用MongoDate与UTCDateTime进行查询

仉伟兆
2023-03-14

升级到新的Mongo驱动程序PHP后,我面临着排序和查询日期的问题。

老司机使用:http://php.net/manual/en/class.mongodate.php它在MongoDate对象中以秒为单位存储日期。

新驱动程序:http://php.net/manual/en/class.mongodb-bson-utcdatetime.php以不同的格式存储日期,并以毫秒为单位存储。

已使使用$gte或$lte进行查询变得无用。例子:

$collection -> find(array('start_date' => array('$gte' => new MongoDate())));

$collection -> find(array('start_date' => array('$gte' => new MongoDB\BSON\UTCDateTime())));

这两个不会返回相同的结果。有了所有的旧数据,我如何安全地仍然使用MongoDate和UTCDateTime查询?

共有1个答案

施永贞
2023-03-14

您需要以毫秒为单位而不是以秒为单位来传递时间,一切都将像以前一样工作:

$time = time();
$cursor = $collection->find(['start_date' => ['$gte' => new MongoDB\BSON\UTCDateTime($time * 1000)]]);
 类似资料:
  • 问题内容: 我正在使用Jesey在Java(JAX-RS)中实现Restful Web Service。我在Tomcat v7.0上运行它,我使用Hibernate将数据映射到数据库(MySQL)。我有一个查询来获取可交付成果的列表: 它给了我一百个可交付成果,但我想在Task表中拥有前三名。感谢您的帮助。如何修改查询? 请注意,这三个可交付成果不应重复。 与@FGreg答案存在冲突。当我使用这些

  • 假设我有一个DynamoDB表: UserId是主键(hash),我需要将BookName设置为排序键(range),因为添加到数据库中的另一项用相同的UserId覆盖了前面的项。

  • 问题内容: 在过去的两年中,我一直在编写Java,现在,我开始用python(另外)进行编写。 问题是,当我查看我的Python代码时,似乎有人试图将Java代码转换为python格式,但结果却很糟糕,因为- python不是Java。 关于如何摆脱“用Python编写Java”模式的任何技巧? 谢谢! 问题答案: 您可能会考虑将自己沉浸在Python范例中。最好的方法是首先了解他们的知识,然后通

  • 问题内容: 我有一个关于使用JdbcTemplate进行动态查询的问题。 我的代码如下: 现在,我的问题是,我想要与插入查询中的自动生成问号相同数量的“值”。 现在,值变量考虑为一个字符串,因此,如果我有2个或更多问号,则在值变量中只有一个用逗号分隔的完整字符串,因此它不起作用。 见下面我的查询: 我想要如下: 问题答案: }

  • 我正在从事一个android项目,其中我计划用OKHTTP客户端替换Apache httpclient实现。我想知道如何创建一个全局客户端,该客户端可用于使用客户端多线程的不同活动和服务中的网络请求。我应该创建OKHTTPClient的单例对象并在我的代码中重用它吗? 此外,我应该在哪里添加cookie到请求中,在客户端的全局定义中,以便我所有的请求都有cookie可用,或者在单个活动或服务中形成

  • 如何使用RxJava的Android Room进行单行查询?我可以查询项目列表,没有问题。这里,我想找出是否存在特定的行。根据文档,如果不存在行,我可以返回Single并检查EmptyResultSetException异常。 我可以吃一些类似的东西: 如何使用此呼叫?看起来有一些onError/onSuccess,但在单个上找不到这些方法 任何可行的例子都会很好!