mongo using mongoose in node want to use or and in query

后端 未结 2 446
半阙折子戏
半阙折子戏 2021-01-23 20:54

I have a situation where I have to check name of the company and code of the company and if both match with existing than it should say exists, or if one of them is matched in e

2条回答
  •  野趣味
    野趣味 (楼主)
    2021-01-23 21:31

    If I have correctly understood, you need using $or inside of $and function in Mongodb or mongoose, both of them supports these two functions. For example (in mongoose):

    cModel.find(
            {
                $and: [
                    {
                        $or: [
                            { name: { $regex: new RegExp(`^${company.name}$`, 'i') } },
                            { company_code: { $regex: new RegExp(`^${company.company_code}$`, 'i') } }
                        ]
                    },
                    {
                        is_delete: true
                    }
                ]
            }, function (err, docs) { 
                if(docs){
                    // throw error!
                } if (!docs) {
                    // enter your new doc here with cModel.create(yourDoc, function(error, data){});
                }
            }
        );
    

    complete documentation for this function is here:

    https://docs.mongodb.com/manual/reference/operator/query/and/

提交回复
热议问题