我想从MongoDB集合中获取当前文档。我的文档看起来像这样:
{
"_id" : ObjectId("55743941789a9abe7f4af3fd"),
"msisdn" : "9xxxxxxxxxx",
"act_date" : ISODate("2014-11-24T00:00:00Z"),
"date" : ISODate("2015-06-07T00:00:00Z"),
"recharge" : { "recharge_amt" : 0, "rechargetype" : "WEB" },
"voice" : { "local_og_mou" : 20, "local_other_mobile_og_mou" : 0, "nld_og_mou" : 0, "nld_other_mobile_og_mou" : 10 },
"gprs" : { "total_access_count" : 1, "total_datavolume_mb" : 42 },
"sms" : { "freesms" : 3, "local_sms_count" : 0, "nat_sms_count" : 0, "inter_sms_count" : 0 }
}
5条答案
按热度按时间wmtdaxz31#
你可以做一个简单的表达式匹配,如下所示:
pokxtpni2#
在MongoDB v5.0+中,您可以使用
$dateTrunc
执行仅日期的比较(没有时间)。与$$NOW
比较以获取当前日期的文档。Mongo Playground
k2fxgqgv3#
根据你的问题 * 你想从mongodb集合中获取当前的文档 *。在mongoDB shell中,当你输入
new Date()
时,它会给你当前的日期和时间,当你运行相同的new Date()
时,这个值总是不同的,所以你的查询可能是这样的:但是,我认为这个查询会返回那些将出现在您的集合中的文档,但相同的当前
Date
值可能不会出现在您的文档中,因此这种情况下,您应该使用以下方法或
在某些情况下,如果你想找到
year,month,day
的精确匹配,那么你应该像这样使用aggregation和$year,$month,$dayOfMonth in $project:在上面的聚合查询中,将返回那些与当前日期匹配的文档,例如当前日期的
year,month,day
。另外,将$match
替换为58wvjzkj4#
如果你使用的是Mongoose,你可以在模式定义后包含
timeStamp: true
来获取自动生成的createdAt和updatedAt字段,Mongoose会处理它。在您的情况下,您需要将TimeStamp密钥与今天的开始(12 AM,ISO字符串为
2019-11-08T00:00:00.000Z
)和一天的结束(11:59 PM,ISO字符串为2019-11-08T23:59:59.999Z
)进行比较。下面的代码将为您做这件事。
j91ykkif5#
您可以使用下面的查询来完成此操作。
注:以上查询返回的单据将不是指定日期。
找到一个日期等于另一个日期