Mongodb: come verificare se il campo contiene una stringa
Puoi utilizzare la seguente sintassi in MongoDB per verificare se un determinato campo contiene una stringa specifica:
db.collection.findOne({ name : { $regex : /string/ }})
I seguenti esempi mostrano come utilizzare questa sintassi con un team di riscossione 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: controlla se il campo contiene una stringa
Possiamo utilizzare il seguente codice per verificare se è presente un documento contenente la stringa “avs” nel campo team:
db.teams.findOne({ team : { $regex : /avs/ }})
Questa query restituisce il seguente documento:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
Tieni presente che la funzione findOne() restituisce il primo documento in una raccolta che soddisfa i criteri della query.
Ciò significa che anche altre squadre potrebbero avere la stringa “avs” nel nome della squadra, ma il documento contenente il nome della squadra “Mavs” era semplicemente il primo.
Esempio 2: controlla se il campo contiene una stringa (senza distinzione tra maiuscole e minuscole)
Possiamo anche usare una i dopo la stringa per creare una corrispondenza senza distinzione tra maiuscole e minuscole .
Ad esempio, supponiamo di utilizzare la seguente query:
db.teams.findOne({ team : { $regex : /AVS/i }})
Questa query restituisce anche il seguente documento:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
Esempio 3: controlla se il campo contiene una stringa (nessun risultato)
Se un campo non contiene la stringa specifica che stiamo cercando, riceveremo semplicemente un valore nullo .
Ad esempio, supponiamo di utilizzare la seguente query:
db.teams.findOne({ team : { $regex : /ricks/ }})
Questa query restituisce il seguente risultato:
null
Poiché nessun documento contiene la stringa “ricks” nel nome della squadra, come risultato riceviamo null .
Nota : puoi trovare la documentazione completa per $regex qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in MongoDB:
MongoDB: come cercare “not null” in un campo specifico
MongoDB: come eseguire una query con un’espressione regolare “Mi piace”.
MongoDB: come aggiungere un nuovo campo a una raccolta
MongoDB: come rimuovere un campo da ciascun documento