How can I use a regex variable in a query for MongoDB

后端 未结 5 1548
清酒与你
清酒与你 2020-11-30 06:10

I would like to make query MongoDB for documents based on a regex expression that I contruct. For e.g I have constructed a simple regex as follows that is a combination of a

5条回答
  •  情书的邮戳
    2020-11-30 06:35

    I was having same problem with my title and after lots of searching, i found this answer Here,

    var search = 'Joe';
    db.users.find(name: /^search/)
    db.users.find(name: {$regex: /^search/});
    db.users.find(name: {$regex: "/^" + search + "/"});
    

    The queries above won’t return anything. The solution to this little problem is quite simple:

    db.users.find(name: new RegExp(search)) //For substring search, case sensitive. 
    db.users.find(name: new RegExp('^' + search + '$')) //For exact search, case sensitive
    db.users.find(name: new RegExp(search, ‘i')) //For substring search, case insensitive
    db.users.find(name: new RegExp('^' +search + '$', 'i')); //For exact search, case insensitive
    

    Other flags or properties can be added base on reference here

提交回复
热议问题