Warm tip: This article is reproduced from serverfault.com, please click

How to find query in mongoose with $and and $or condition?

发布于 2020-12-01 06:09:32

Script:

const query = req.body.data;
    if(query!==''){
        await User.find(
            { $or:[
               {username: { "$regex": query, "$options": 'i' }},
                    {name: { "$regex": query, "$options": 'i' }},
             {collegeName: { "$regex": query, "$options": 'i' }},
             {collegeEmail: { "$regex": query, "$options": 'i' }}
            ], active: true}, 
             function(err,docs) { 
                 if(err){
                     console.log(err);
                 }else{
                     res.send(docs);
                 }
             }
         );
    }

I find with " ( ( uername: query || name: query || collegeName: query || collegeEmail: query) && (active : true) ) " this query. but i write on above code is not working .can anybody help me??

Questioner
RK NANDA
Viewed
0
RK NANDA 2020-12-02 17:24:58

I get my Question answer, so easy sorry...

const query = req.body.data;
    if(query!==''){
        await User.find({
            $and:[{active: true},
                { $or:[
                    {username: { "$regex": query, "$options": 'i' }},
                         {name: { "$regex": query, "$options": 'i' }},
                  {collegeName: { "$regex": query, "$options": 'i' }},
                  {collegeEmail: { "$regex": query, "$options": 'i' }}
                 ]}]
        }, 
             function(err,docs) { 
                 if(err){
                     console.log(err);
                 }else{
                     res.send(docs);
                 }
             }
         );
    }