在猫鼬的findOne函数中,逻辑AND操作存在问题。
提供给该功能的日期正确,我正在检查并记录结果。我仍在获取OR而不是AND操作。
static checkAvaiable(date, time, number) {
return new Promise((resolve, reject) => {
console.log(date, time)
TableModel.findOne({
$and: [
{
'reservations.date': date,
'reservations.time': time,
number
}
]
}, { 'reservations.$': 1 }, (err, result) => {
if (result.reservations.length != 0) {
reject()
}
if (err) {
reject()
}
resolve()
})
})
}
答案 0 :(得分:0)
您错误地使用了$and
运算符,请参阅docs。
有人说,您似乎根本不需要使用$and
运算符。您可以仅按参数过滤,默认行为是使用and
逻辑。
static checkAvaiable(date, time, number) {
return new Promise((resolve, reject) => {
console.log(date, time)
TableModel.findOne({
$and: [
{
'reservations.date': date
},
{
'reservations.time': time
},
{
number
}
]
}, { 'reservations.$': 1 }, (err, result) => {
if (result.reservations.length != 0) {
reject()
}
if (err) {
reject()
}
resolve()
})
})
}