Operators: $regex

Finding documents that match the regular expression (RegExp).

🪶 The $regex operator is used to perform queries that match a regular expression pattern.


Database: Client > model: Users

Here we will simulate a database with the Users collection:
1
  • COLLECTION:
  • Users > [
    2  
  • {
  • name:
  • "Chris Axxwell",
  • nick:
  • "Chris",
  • age:
  • 27
  • }
  • ,
    3  
  • {
  • name:
  • "Chris Buckman",
  • nick:
  • "Chris",
  • age:
  • 28
  • }
  • ,
    4  
  • {
  • name:
  • "Santiago Smith",
  • nick:
  • "Lollipop",
  • age:
  • 24
  • }
  • ,
    5  
  • {
  • name:
  • "Justin Dacker",
  • nick:
  • "Justin",
  • age:
  • 22
  • }
  • ,
    6  
  • {
  • name:
  • "Chris Morgan",
  • nick:
  • "Mor",
  • age:
  • 25
  • }
  • ,
    7   ...
    8]

    Query the above database:

    1
  • import
  • MerlinDB,
  • {
  • Schema
  • }
  • from
  • "@chrisaxxwell/merlin-db";
    2
  • //Or if you are using 'merlindb.max.js' just call 'new MerlinDB()';
  • 3
    4
  • const
  • merlin =
  • new
  • MerlinDB(
  • )
  • ;
    5merlin
  • .connect(
  • "Client"
  • )
  • ;
    6
  • var
  • clientModel = merlin
  • .model(
  • "Users", <userSchema>
  • )
  • ;
    7
    8
  • //$regex: <RegExp>;
  • 9clientModel
  • .find(
  • {
  • 10  
  • name:
  • {
  • $regex:
  • /^C/gi
  • }
  • ,
    11  
  • //or
  • 12  
  • name:
  • {
  • $regex:
  • 'Chris'
  • }
  • ,
    13  
  • //or
  • 14  
  • name:
  • {
  • $regex:
  • ['C', 'gi']
  • }
  • ,
    15  
  • //or
  • 16  
  • name:
  • {
  • $regex:
  • new
  • RegExp(
  • "^c", "gi"
  • )
  • }
  • ,
    17
  • }
  • )
  • .then(
  • e =>
  • {
  • 18   console
  • .log(
  • e
  • )
  • ;
    19  
  • //returns: Using first example
  • 20   [  
    21      
  • {
  • name:
  • "Chris Axxwell",
  • nick:
  • "Chris",
  • age:
  • 27
  • }
  • ,
    22      
  • {
  • name:
  • "Chris Buckman",
  • nick:
  • "Chris",
  • age:
  • 28
  • }
  • ,
    23      
  • {
  • name:
  • "Chris Morgan",
  • nick:
  • "Mor",
  • age:
  • 25
  • }
  • ,
    24      ...
    25   ]
    26
  • }
  • )