Mongodb: come eseguire query con l'espressione regolare "mi piace".


Puoi utilizzare i seguenti metodi per interrogare MongoDB con un’espressione regolare “mi piace”:

Metodo 1: trova documenti contenenti una stringa

 db.collection.find({ name : { $regex : /string/i }})

Tieni presente che la i indica una corrispondenza senza distinzione tra maiuscole e minuscole.

Metodo 2: trova i documenti che iniziano con una stringa

 db.collection.find({ name : { $regex : /^string/i }}) 

Metodo 3: trova i documenti che terminano con una stringa

 db.collection.find({ name : { $regex : /string$/i }}) 

I seguenti esempi mostrano come utilizzare ciascun metodo con un team di raccolta con i seguenti documenti:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Esempio 1: ricerca di documenti contenenti una stringa

Possiamo utilizzare il seguente codice per cercare tutti i documenti che contengono la stringa “avs” nel campo team:

 db.teams.find({ team : { $regex : /avs/i }})

Questa query restituisce i due documenti seguenti:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Esempio 2: trovare documenti che iniziano con una stringa

Possiamo utilizzare il seguente codice per cercare tutti i documenti che iniziano con la stringa “gua” nel campo posizione:

 db.teams.find({ position : { $regex : /^gua/i }})

Questa query restituisce i tre documenti seguenti:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("6180504e8ffcfe76d07b1da7"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Esempio 3: trovare documenti che terminano con una stringa

Possiamo utilizzare il seguente codice per trovare tutti i documenti che terminano con la stringa “ward” nel campo posizione:

 db.teams.find({ position : { $regex : /ward$/i }})

Questa query restituisce il seguente documento:

 { _id: ObjectId("618050808ffcfe76d07b1dab"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

Nota : puoi trovare la documentazione completa per $regex qui .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *