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

node.js-如何在具有$ and和$ or条件的 Mongoose 中查找查询?

(node.js - How to find query in mongoose with $and and $or condition?)

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

脚本:

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);
                 }
             }
         );
    }

我发现 “((uername:query || name:query || collegeName:query || collegeEmail:query)&&(active:true))“这个查询。但是我在上面的代码上写不起作用。有人可以帮助我吗?

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

我得到我的问题的答案,很容易对不起...

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);
                 }
             }
         );
    }