如何在mongodb中进行不区分大小写的查询

时间:2019-02-20 04:46:00

标签: node.js mongodb

每次更改都会调用此API。它可以是数字或名称字段。这里的任务是我要使用不区分大小写的名称进行搜索。

 router.get('/v1/branch/search/customers/:phoneNumber',authenticate , (req, res) => {
    var regex = "/^"+req.params.phoneNumber+"/", name ="/^"+req.params.phoneNumber+"$/i"; 

    Customer.find({
        subscriberId: req.user.subscriberId,$or:[{$where:regex+'.test(this.phoneNumber)'},{$where:name+'.test(this.name)'},{$where:regex+'.test(this.name)'}],
        _creator : req.user._id
      },{name:1,phoneNumber:1,_id:0}).sort({name: 1}).then((customer) => {
        res.send({'statusCode':0,'data':customer});
      }, (e) => {
        console.log(e);
        res.status(200).send({'statusCode':2,'message':e.message});
      }); 
  });

以上代码仅对某些名称而不区分所有数据,不区分大小写。我在这里做的没错。

1 个答案:

答案 0 :(得分:2)

您可以使用regex queries

{ "name" : { $regex: /Ghost/, $options: 'i' }

将其包含在您的代码中将解决不区分大小写的问题。