假设我们有一个包含 6 列的 mongodb 集合:
- 房间来自
- RoomTo
- PoolFrom
- PoolTo
- FloorFrom
- FloorTo
现在我想选择范围 *From / *To 与另一个范围相交的行。
例如:
[
{
_id: 1,
RoomFrom: 100,
RoomTo: 200,
PoolFrom: 150,
PoolTo: 155,
FloorFrom: 170,
FloorTo: 180
},
{
_id: 2,
RoomFrom: 150,
RoomTo: 300,
PoolFrom: 170,
PoolTo: 200,
FloorFrom: 170,
FloorTo: 180
},
{
_id: 3,
RoomFrom: 210,
RoomTo: 230,
PoolFrom: 100,
PoolTo: 110,
FloorFrom: 500,
FloorTo: 505
},
{
_id: 4,
RoomFrom: 300,
RoomTo: 350,
PoolFrom: 400,
PoolTo: 450,
FloorFrom: 600,
FloorTo: 650
},
{
_id: 5,
RoomFrom: 400,
RoomTo: 401,
PoolFrom: 500,
PoolTo: 503,
FloorFrom: 700,
FloorTo: 711
}
]
现在我们有了范围:
射程变体 #1
- 房间起价 = 201
- RoomTo = 350
因此在这个范围内我有结果中的对象:
- 对象 #2
- 对象 #3
- 对象 #4
在这种情况下,“查找”的查询是什么?
我从永顺那里得到了一个很好的例子(非常感谢!!!):
- https://mongoplayground.net/p/Hx6XZwMvbb7
- https://mongoplayground.net/p/0vmG5yQbzyV
- https://mongoplayground.net/p/-5LcMtHxIn7
- https://mongoplayground.net/p/hd6Sz1iL1Zx
但这仅适用于一种情况...
范围变体 #2
- 房间起价 = 201
- RoomTo = 350
- PoolFrom = 100
- PoolTo = 350
因此在这个范围内我有结果中的对象:
- 对象 #2
- 对象 #3
在这种情况下,“查找”的查询是什么?
射程变体 #3
- 房间起价 = 201
- RoomTo = 350
- PoolFrom = 100
- PoolTo = 350
- FloorFrom = 180
- FloorTo = 185
因此在这个范围内我有结果中的对象:
- 对象 #2
在这种情况下,“查找”的查询是什么?
这个https://mongoplayground.net/p/LDvAlyERpXD工作正常,但仅适用于一对 RoomFrom / RoomTo ,这个适用于 3 对:https ://mongoplayground.net/p/81MKW9AkelA 。
因此,当每对都有范围时,我需要查询:
- 从
- 到
谢谢。