我是 mongoose 的新手,我正在尝试在具有假期开始日期和假期结束日期的请求表中创建一个 where 查询。我正在尝试检查用户是否尝试插入新假期,其中输入的日期在表中已存在的范围内
示例:
<块引用>新请求:employee_id:1,开始日期:27-12-2020,结束日期:01-01-2021
<块引用>数据库中的记录:employee_id:1, start_date: 25-12-2020 , end_date: 30-12-2020
无法插入新请求,因为用户之前已经在该范围内请求过假期。因为他不能同时请求 2 个假期。
请求架构:
const requests_Schema = mongoose.Schema({
employee_id : {
required: true,
type: String
},
start_date: {
type:Date,
required: true
},
end_date: {
type:Date,
required: true
}
});
创建新请求:
let newRequest = new requests_Model({
employee_id: req.body.employee_id,
request_type: "Compensation Leave",
start_date: req.body.start_date,
end_date: req.body.end_date
})
查询:
requests_Schema.pre('save',()=>{
let emp_id = this.employee_id
let start_date = this.start_date
let end_date - this.end_date
requests_Model.find({employee_id:emp_id})
//WHERE new vacation date range doesn't conflict with any old vacation range
//If it does I shouldn't insert that request, user not allowed to
}
请帮我执行这样的查询,因为我觉得很难。