【问题标题】:How To Get Docs Between Two Date (Different field )如何获取两个日期之间的文档(不同的字段)
【发布时间】:2019-04-30 09:50:48
【问题描述】:

我有一个收藏名称请假 当员工申请休假时,然后创建一个包含 From 和 To 日期的文档 这种格式

"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  }

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

我不明白这个查询发生了什么

当我运行此查询时开始和结束日期不同它的工作

提前致谢

【问题讨论】:

    标签: mongodb mongoose mongodb-query adonis.js


    【解决方案1】:

    我累了,工作很好。 请检查您在用户中的日期和 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")}})
    

    返回文档

    【讨论】:

    • 日期格式问题,哪种格式对mongodb好(我用moment)
    • 另存为 ISODate。我觉得它更好。
    • 在“2019-04-28T18:30:00.308Z”中使用哪种日期格式,因为我是使用时刻 js 格式化日期
    猜你喜欢
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多