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

MongoDB查询日期

漆雕亮
2023-03-14

如果日期相同,则使用$gt进行查询将无法正常工作。它更像是$gte

但如果我给query param加上1秒,它就会工作。

下面是示例查询;

我有一个文档,它是创建日期1367414837时间戳。

db.collection.find({creation_date : {'$gt' : new Date(1367414837000)}});

此查询与日期为1367414837的文档相匹配,如果我将查询时间戳增加一个,如1367414838

我正在使用mongo控制台,但我在php中遇到了与MongoDate相同的问题

编辑:查询的输出

db.collection.findOne({creation_date : {'$gt' : new Date(1367414837000)}});
{
    "_id" : ObjectId("5181183543c51695ce000000"),
    "action" : {
        "type" : "comment",
        "comment" : {
            "id" : 74,
            "post_id" : "174",
            "owner_id" : "5",
            "text" : "ne diyeyim lae :D",
            "creation_date" : "2013-05-01 16:27:17"
        }
    },
    "creation_date" : ISODate("2013-05-01T13:27:17.336Z"),
    "owner" : {
        "id" : "5",
        "username" : "tylerdurden"
    }
}

edit2:问题是mongo的php扩展。它记录了“当文档发送到/从数据库发送时,任何超过毫秒的精度都将丢失。”http://php.net/manual/en/class.mongodate.php

我将查询参数递增一秒钟作为周转解决方案

共有1个答案

赏高格
2023-03-14

BSON中的日期是UNIX日期,等于自历元起的毫秒数;它们精确到毫秒。如果插入(并尝试匹配)的时间精确到毫秒级,则尝试匹配的元素可能比查询的时间戳晚几毫秒,并且$gt很可能按预期工作。(例如,2013-05-01T13:27:17.001Z确实比2013-05-01T13:27:17Z晚。)

 类似资料:
  • 问题内容: 我在集合中将值存储为java.util.Date(),但是当我查询以获取两个特定日期之间的值时,最终得到的值超出了范围。这是我的代码: 插入 查询 当我在和之间查询时(基本上是fromDate = toDate),我得到的日期绝对不可能的对象。我在这里想念什么? 问题答案: 您正在执行的操作是仅在键覆盖中使用丢失运算符进行查询。您想要的是:

  • 问题内容: 是否可以查询特定日期? 我在mongo Cookbook中发现我们可以针对某个范围进行查询 ,例如: 但是可能有特定的日期吗?这不起作用: 问题答案: 如果您保存在数据库中的日期没有时间(恰好是年,月,日),那应该可行。 您保存的日期可能是,其中包括时间成分。要查询这些时间,您需要创建一个包含一天中所有时刻的日期范围。

  • 此问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这一问题的解决方式不太可能对未来的读者有所帮助。 我正在尝试向mongoDB查询“日期”在两个日期之间的文档。示例数据是: 我的Java代码是: 但游标对象没有结果。 查询对象如下所示: 我怀疑问题是DB中的日期表示。对此有什么建议吗?

  • 问题内容: 我知道ObjectIds包含创建日期。有没有办法查询ObjectId的这一方面? 问题答案: 将时间戳弹出到ObjectId中将详细介绍基于嵌入在ObjectId中的日期的查询。 简要介绍一下JavaScript代码:

  • 我正在尝试使用MongoDBJava驱动程序作为聚合命令的一部分创建查询。目前我允许日期范围或特定日期数组作为参数。例如 日期范围查询工作正常,我解析xml并将其转换为在mongo中生成以下查询的DBObject; 对于指定日期,我只想返回在给定日期的00:00:00.000和第二天的00:00:00.000之间发生的结果。根据我对mongo查询的基本了解,我希望做一个类似于日期范围的$匹配,但是

  • 我使用Nodejs和MongoDB与expressjs和mongoose库,创建一个具有用户、文章和评论模式的博客API。下面是我使用的模式。