Node.js and Mongoose regex query on multiple fields

18,527

The code above works fine for a query on multiple fields. Turns out I had some bad data.

Share:
18,527
RevNoah
Author by

RevNoah

Updated on June 25, 2022

Comments

  • RevNoah
    RevNoah almost 2 years

    I would like to query multiple fields using the same regular expression for both. In this query, I would like to accept a single text input and check both the firstName and lastName fields for results. I can query a single field just fine using the regex function in the mongoose documentation, but the syntax for an 'or' clause is giving me trouble.

    var re = new RegExp(req.params.search, 'i');
    
    app.User.find().or([{ 'firstName': { $regex: re }}, { 'lastName': { $regex: re }}]).sort('title', 1).exec(function(err, users) {
        res.json(JSON.stringify(users));
    });
    

    (I'm running mongoose 2.7.1 on node.js 0.6.12)