簡體   English   中英

如何在貓鼬的findOne查詢中進行邏輯AND?

[英]How to make logical AND in mongoose findOne query?

我在貓鼬的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()
        })
    })
}

您錯誤地使用了$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()
        })
    })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM