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

直到今天,我才在mongodb中使用$gte获取数据

宗政权
2023-03-14

我想要的是获得在日期范围内创建帐户的用户,并且还想要获得新客户订单数大于1的客户,因此我正在做的是尝试获得大于上个月(即2020年3月1日)的数据,但输出给我的是4月1日之前的用户,为什么不到今天(即4月11日),数据的格式如下

"_id" : ObjectId("1dv47sd1a10048521sa1234d"),
"updatedAt" : ISODate("2020-04-01T16:19:26.460+05:30"),
"createdAt" : ISODate("2020-04-01T16:18:46.066+05:30"),
"email" : "edx@gmail.com",
"phone" : "xxxxxxxxxx",
"password" : "$awdad$2b$10$4YaO6AEZqXA9ba0iz14ALi",
"dob" : "00/20/1990",
"stripeID" : "xxxxxxxxxxxxxxxx",
"__t" : "Customer",
"banned" : false,
"picture" : "link to image",
"name" : {
    "first" : "ababab",
    "last" : "Saaa"
},
"orderCount" : 2,
"creditCards" : [ ],
"addresses" : [ ],
"__v" : 0,
"isEmailVerified" : true

我写了一个查询,用于从大于上个月的日期提取数据,但它给我的数据到4月1日,我的查询如下

db.users.find({
  "createdAt" : { "$gte" :new Date("2020-03-1") }
})

因此,我想从2020年3月1日起获得timm数据,订单数量也比1大,提前感谢我是mongo的新手

共有1个答案

孙阳舒
2023-03-14

MongoDB只存储绝对时间(又名时间戳或日期时间),不存储日期。因此,查询通常应该使用时间而不是日期来指定。

此外,MongoDB始终以UTC存储时间。不同的系统可以在不同的时区运行。例如,shell可能在与应用程序不同的时区中运行。

要使用日期查询,请执行以下操作:

  1. 确定日期所在的时区
  2. 将日期转换为该时区中的时间。例如,2020-03-01 00:00:00 UTC-2020-03-31 23:59:59 UTC和2020-03-01 00:00:00-0400-2020-03-31 23:59:59-0400都是“三月”,将匹配不同的文档集
  3. 将时间转换为UTC。这可能是您正在使用的框架或库句柄所做的事情,例如Ruby中的Mongoid
  4. 使用UTC时间构建MongoDB查询

此处的文档中对此进行了说明。

 类似资料:
  • 问题内容: 如何在Sparksql中获得一天,与mysql中相同。 问题答案: 算术函数使您可以对包含日期的列执行算术运算。 例如,您可以计算两个日期之间的差额,为日期添加天数或从日期中减去天数。内置的日期计算功能包括,, ,,, ,和。 我们需要的是 date_sub(时间戳记开始日期,整数天),用途:从TIMESTAMP值中减去指定的天数。第一个参数可以是字符串,如果它使用可识别的格式(如TI

  • 问题内容: 如何通过使用PHP中的strtotime()函数获取今天,昨天和前天的12点时间戳? 12点是一个变量,可由用户更改。 问题答案:

  • 问题内容: 如何编写查询以获取今天的日期数据? 问题答案: 正确答案将取决于您的确切类型。假设它是类型: 如果是:

  • 问题内容: 如何让今天的日期YYYYMMDD在火鸟,我一看下面的,但不能想出该怎么写。 问题答案: 我认为您可以:

  • 问题内容: Java Swing是否仍在使用?是我发现的最新帖子,它是4岁(现在是9岁),所以… 是否在 专业环境中 使用过Swing ?我是一名学生,想知道它是否值得学习,或者它的时代已经过去了。 (我不是在问Swing与AWT的比较…只是在劳动力中Swing是否已过时。) 问题答案: 现有的GUI Java代码库多数都将保持这种状态,直到代码库腐烂并且没有人再维护它为止。 大多数 新的 GUI

  • 问题内容: 我需要创建两个日期对象。如果当前日期和时间是2012年3月9日上午11:30,则 日期对象d1应该是 2012年3月9日上午12:00 日期对象d2应该包含当前日期本身 日期不会输入,它是系统日期。 更新 : 给出当前日期和时间 问题答案: 应该是IST 2012年3月9日00:00:00