MongoDB $和查询是否不满足所有条件?

时间:2019-08-31 11:00:06

标签: node.js mongodb mongoose mongodb-query

我正在尝试根据用户希望查询0-6个条件

enter image description here

我在mongo中的查询是

var query = {}
    query['$and'] = [];

    if(req.body.input.inputCustomer !== "All"){
        query['$and'].push({
            salesOrderCustomerName: req.body.input.inputCustomer
        })
    }
    if(req.body.input.inputLocation !== "All"){
        query['$and'].push({
            salesOrderSubLocation: {
                "$gte": req.body.input.inputLocation
            }
        })
    }
    if(req.body.input.inputItem !== "All"){
        query['$and'].push({
            salesOrderItemList :{$elemMatch:{salesOrderSelectedItem: req.body.input.inputItem}}
        })
    }
    if(req.body.isDate === false){
        query['$and'].push({
            salesOrderDateCreated: {
                "$gte": req.body.input.inputFromDate
            }
        })

        query['$and'].push({
            salesOrderDateCreated: {
                "$lte": req.body.input.inputToDate
            }
        })
    }

    query['$and'].push({salesOrderLocation: req.query.loc})

但是当我搜索位置1时,位置2也出现了!

enter image description here

这是我的数据库

enter image description here

请参阅ID 46至48,它们位于子位置2,但我仅搜索子位置1,它们仍然出现。我的查询出了什么问题?我用了$和

0 个答案:

没有答案