AND OR查询的Mongoose问题

时间:2018-03-20 08:32:03

标签: mongodb mongoose

我试图翻译'对Mongoose的SQL查询,但无法返回任何结果。 这是SQL的一个:

WHERE (( a = 1 AND b = 1) OR ( c = 1 AND d = 1)) AND (date = '2018-03-20')

这里有mongo查询版本:

$and: [
            { $or: [ {$and: [{searchCode: 123},
                             {searchNumber: 987} 
                            ]
                     },
                    {$and:  [{Code: 123}, 
                             {Number: 987}
                            ]
                    }
                ]                            
            },
            {date: '2018-03-20'}
        ]

数据库中有值应返回,但查询无法返回结果。

请告知。

2 个答案:

答案 0 :(得分:0)

试试这个

{
    date: valueDate.format('YYYY-MM-DD'),
    $or: [{
        searchCode: newCode,
        searchNumber: newNumber
    }, {
        Code: newCode,
        Number: newNumber
    }]
}

答案 1 :(得分:0)

查询没问题。检查值的类型是否匹配。它返回两个文件:

    {searchCode: 123, searchNumber:987, date: '2018-03-20'},
    {Code: 123, 'Number':987, date: '2018-03-20'}

但不返回

    {searchCode: '123', searchNumber:987, date: '2018-03-20'}

,也不

    {searchCode: 123, searchNumber:987, date: ISODate('2018-03-20')}