Mongodb: hoe u kunt controleren of een veld een string bevat
U kunt de volgende syntaxis in MongoDB gebruiken om te controleren of een bepaald veld een specifieke string bevat:
db.collection.findOne({ name : { $regex : /string/ }})
De volgende voorbeelden laten zien hoe u deze syntaxis kunt gebruiken met een incassoteam met de volgende documenten:
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 })
Voorbeeld 1: Controleer of het veld een string bevat
We kunnen de volgende code gebruiken om te controleren of er een document is dat de string „avs“ bevat in het teamveld:
db.teams.findOne({ team : { $regex : /avs/ }})
Deze query retourneert het volgende document:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
Houd er rekening mee dat de functie findOne() het eerste document in een verzameling retourneert dat aan de querycriteria voldoet.
Dit betekent dat andere teams mogelijk ook de string „avs“ in hun teamnaam hebben, maar het document met de teamnaam „Mavs“ was eenvoudigweg het eerste.
Voorbeeld 2: Controleer of het veld een string bevat (niet hoofdlettergevoelig)
We kunnen ook een i na de string gebruiken om een hoofdletterongevoelige overeenkomst te maken.
Stel dat we bijvoorbeeld de volgende query gebruiken:
db.teams.findOne({ team : { $regex : /AVS/i }})
Deze query retourneert ook het volgende document:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
Voorbeeld 3: Controleer of het veld een string bevat (geen resultaten)
Als een veld niet de specifieke string bevat waarnaar we op zoek zijn, ontvangen we eenvoudigweg null .
Stel dat we bijvoorbeeld de volgende query gebruiken:
db.teams.findOne({ team : { $regex : /ricks/ }})
Deze query retourneert het volgende resultaat:
null
Omdat geen enkel document de string „ricks“ in de teamnaam bevat, krijgen we als resultaat null .
Opmerking : u kunt de volledige documentatie voor $regex hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:
MongoDB: zoeken naar „not null“ in een specifiek veld
MongoDB: Query’s uitvoeren met een reguliere expressie „Vind ik leuk“.
MongoDB: Hoe u een nieuw veld aan een verzameling toevoegt
MongoDB: Hoe u een veld uit elk document verwijdert