【发布时间】:2016-05-06 07:36:50
【问题描述】:
我正在使用流星和 mongo db
我有两个具有一对多结构的集合
酒店:
{
_id:1,
name: "Hotel 1"
},
{
_id:2,
name: "Hotel 2"
}
预订
{_id:1,
hotel_id_:1,
date: "2016-05-06",
num_nights: 2,
dates: ["2016-05-06", "2016-05-06"]
},
{_id:2,
hotel_id:1
date: "2016-05-04",
num_nights: 1,
dates: ["2016-05-04"]
},
{_id:3,
hotel_id:2
date: "2016-05-01",
num_nights: 3,
dates: ["2016-05-01", "2016-05-02", "2016-05-03"]
}
我也可以像这样保存酒店,其中预订是父母的直接孩子:
{
_id:1,
name: "Hotel 1",
bookings:[
{_id:1,
hotel_id_:1,
date: "2016-05-06",
num_nights: 2,
dates: ["2016-05-06", "2016-05-06"]
},
{_id:2,
hotel_id:1
date: "2016-05-04",
num_nights: 1,
dates: ["2016-05-04"]
}
]
}
我正在尝试找到一种方法来根据任何给定日期的 3 个条件查找酒店
- 城市名称(正则表达式 - 我可以管理)
- 可用性(由酒店提供 - 我可以管理)
- 给定日期的预订没有冲突
编辑:
Hotels 和 Bookings 是我实际设置的隐喻,但它们非常相似。 假设酒店在给定日期已预订或未预订没有“房间”
/编辑
我可以找到给定酒店的预订,但我不知道如何组合所有酒店以找到满足前两个要求但没有冲突预订的酒店,因为目前的预订位于单独的集合中
有没有办法找到首先满足前两个条件的酒店,然后过滤掉不满足第二个条件的酒店 - 无需手动遍历每个文档
谢谢!我很乐意进一步澄清。
【问题讨论】:
标签: mongodb meteor mongodb-query