【发布时间】:2020-11-05 07:36:49
【问题描述】:
有一些旧的预订数据如下
{
"_id" : ObjectId("5ec3df592d2c6146204ca8fd"),
"space" : "5ea974b82d2c614721d69b08",
"eventTypeId" : "5e8e0fe22d2c6104bdf55699",
"bookingStartDate" : ISODate("2020-07-10T00:00:00.000Z"),
"bookingEndDate" : ISODate("2020-07-12T00:00:00.000Z"),
}
{
"_id" : ObjectId("5ec3df592d2c6146204ca8fd"),
"space" : "5ea974b82d2c614721d69b08",
"eventTypeId" : "5e8e0fe22d2c6104bdf55699",
"bookingStartDate" : ISODate("2020-07-15T00:00:00.000Z"),
"bookingEndDate" : ISODate("2020-07-17T00:00:00.000Z"),
}
{
"_id" : ObjectId("5ec3df592d2c6146204ca8fd"),
"space" : "5ea974b82d2c614721d69b08",
"eventTypeId" : "5e8e0fe22d2c6104bdf55699",
"bookingStartDate" : ISODate("2020-07-20T00:00:00.000Z"),
"bookingEndDate" : ISODate("2020-07-26T00:00:00.000Z"),
}
{
"_id" : ObjectId("5ec3df592d2c6146204ca8fd"),
"space" : "5ea974b82d2c614721d69b08",
"eventTypeId" : "5e8e0fe22d2c6104bdf55699",
"bookingStartDate" : ISODate("2020-08-01T00:00:00.000Z"),
"bookingEndDate" : ISODate("2020-08-05T00:00:00.000Z"),
}
现在用户需要通过传递空格,eventTypeId,newBookingStartDate和newBookingEndDate来查找新预订日期范围如2020-07-08(newBookingStartDate)到2020-07-20(newBookingEndDate)是否有旧预订
对于这种情况,我需要 Mongo 查询或 Spring Boot Mongo 查询,查询应返回集合的前三个文档
【问题讨论】:
-
将日期转换为 UTC 时间戳,然后使用 $lte/$gte。
-
是否有其他方法可以使用 ISO 日期查找,或者是否必须转换为 UTC :)
-
MongoDB 不存储时区,因此必须以 UTC 格式提供所有时间。
标签: java mongodb spring-boot