【发布时间】:2020-07-01 17:02:15
【问题描述】:
我是 MongoDB 新手,可能这是一个常见的用例,但我没有找到这个特定案例的答案。
我想过滤掉那些预订时间段仍然空闲的 MongoDB 文档,因此不会与现有预订重叠。
我的收藏条目:
{
"_id": "5efc9f89749c983ffd58c55f",
"training": "football",
"bookings": [
{
"from": 1593607419,
"to": 1593622800
}
]
},
{
"_id": "5efc9f89749c983ffd58c55f",
"training": "baseball",
"bookings": [
{
"from": 1593607419,
"to": 1593622800
},
{
"from": 1593687419,
"to": 1593722800
}
]
}
输入“From: 1593500000”和“To: 1593600000”的预期结果。
{
"_id": "5efc9f89749c983ffd58c55f",
"training": "football"
},
{
"_id": "5efc9f89749c983ffd58c55f",
"training": "baseball"
}
两个文件都有空闲时间段(不与现有预订重叠)。
输入“From: 1593670000”和“To: 1593690000”的预期结果。
{
"_id": "5efc9f89749c983ffd58c55f",
"training": "football"
}
只返回足球,因为查询的值与棒球的第二个预订条目重叠。
是否可以通过单个查询来做到这一点?例如使用 between 或类似的东西? 还是有更好的方法/最佳实践?
我使用 Spring Data REST 实现查询,但对 mongodb 查询提供一些帮助已经非常有帮助了。
【问题讨论】:
标签: mongodb mongodb-query spring-data-mongodb