如何在两个日期之间获取文档(不同字段)

时间:2019-04-30 09:50:48

标签: mongodb mongoose mongodb-query adonis.js

我有一个收藏名称假 当一名员工申请请假时,请创建一个具有“从”和“到”日期的文档  以此格式

"slots": [
            ObjectId("5c9b5281a2f04a75c6ed77d1")
        ],
        "start_date": ISODate("2019-04-29T00:00:00.308+05:30"),
        "end_date": ISODate("2019-04-29T00:00:00.308+05:30"),
        "user": ObjectId("5cc6d732faad3318b39b80f8"),
        "status": NumberInt(1),

当我使用此查询对集合运行查询时

user: { '$in': [ 5cc6d732faad3318b39b80f8 ] },
  start_date:
   { '$gte': 2019-04-29T18:30:00.000Z },
  end_date:
   { '$lte': 2019-04-29T18:30:00.000Z  }

具有相同的开始日期和结束日期,则查询不返回任何文档

我无法理解此查询发生了什么

当我以不同的开始日期和结束日期运行此查询时,

谢谢

1 个答案:

答案 0 :(得分:0)

我累了并且工作得很好。 请检查用户的日期和ID格式。

数据库

{
"_id" : ObjectId("5cc81bc3767421415293994d"),
"slots" : [ 
    ObjectId("5c9b5281a2f04a75c6ed77d1")
],
"start_date" : ISODate("2019-04-28T18:30:00.308Z"),
"end_date" : ISODate("2019-04-28T18:30:00.308Z"),
"user" : ObjectId("5cc6d732faad3318b39b80f8"),
"status" : 1
}

查询

db.collection.find({user: { '$in': [ ObjectId("5cc6d732faad3318b39b80f8") ] },start_date:{$gte:ISODate("2019-04-28T18:30:00.308Z")},end_date:{$lte:ISODate("2019-04-28T18:30:00.308Z")}})

返回文档