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 .