首页 > 解决方案 > 仅根据 createdAt 列从 MongoDB 中获取数据

问题描述

我有收藏 Ticket_master,如下所示

票务大师

{
   _id:5e70ed53de0f7507d4da8dc2,
   "TICKET_NO" : 1000,
   "SUBJECT" : "Sub1",
   "DESCRIPTION" : "Desc1",
   "createdAt" : ISODate("2020-03-17T15:31:31.039Z"),
}

已经尝试使用以下代码片段,它返回空结果集。

db.getCollection('ticket_masters').find({ 'createdAt':ISODate('2020-03-17T00:00:00.000Z')})

如何通过将值与创建日期列匹配来从 ticket_master 集合中获取数据,该列表示为createdAt

以下代码片段返回结果。因为它同时包含日期和时间。如何仅使用 Date 从集合中获取数据。

db.getCollection('ticket_masters').find({ 'createdAt':ISODate('2020-03-17T15:31:31.039+00:00')})

标签: mongodb

解决方案


只要您正在搜索某一天创建的所有工单,那么您可以使用日期范围来过滤工单

db.getCollection('ticket_masters').find({ 
    createdAt : { 
        $gte: ISODate('2020-03-17T00:00:00.000Z'), 
        $lt: ISODate('2020-03-18T00:00:00.000Z') 
    } 
})

这应该返回在 2020 年 3 月 17 日创建的所有工单

检查这个Mongo Playground


推荐阅读