【发布时间】:2019-01-04 04:04:27
【问题描述】:
我想搜索预订开始日期和预订结束日期在特定日期范围内的预订列表。
如果我在 MySQL 中查询它会是这样的:
MySQL:
SELECT * FROM MotelReservations
WHERE motelId = 'ABC123' AND (
(dateStart BETWEEN '2018-12-01 00:00:00' AND '2018-12-31 23:59:59') OR (dateEnd BETWEEN '2018-12-01 00:00:00' AND '2018-12-31 23:59:59')
)
但我不确定 mongodb 的查询相当于什么。
MongoDB:
{
"motelId": "ABC123",
???
}
另外,因为我将使用 Spring Data MongoDB 专门的存储库方法。我想使用类似 JPA 的样式来查询它,我可以只使用 findAllBy... 方法名称。如果不可能,我可以使用@Query 注释来解决。问题是,我不确定 mongo-db 中的查询相当于什么。
Spring Data MongoDB(存储库):
在MotelReservationDao接口中,通过方法名findAllBy...或者使用查询注解搜索
findAllByMotelIdAnd...(String motelId, ...)
@Query(???)
findAllReservationsThatFallsOnGivenDates
示例 Mongo 文档:
{
"reservedBy": "Mang Kanor" ,
"id": "b1a7ddd3-ddfd-4624-8e85-79b47fb19f99" ,
"motelId": "ABC123" ,
"dateEnd": "2018-11-20T10:00:00" ,
"dateStart": "2018-11-20T09:00:00" ,
"summary": "Enjoy the moment in room 123"
}
【问题讨论】:
-
你能举一个你的 MongoDB motel 文档的例子吗?
-
添加了一个示例文档:)
标签: mysql mongodb mongodb-query spring-data-mongodb