Überprüfen Sie, ob das Feld eine Zeichenfolge in MongoDB enthält
-
Verwenden Sie
regex
in MongoDB - Überprüfen Sie, ob das Feld eine Zeichenfolge in MongoDB enthält
- Prüfen, ob das Feld eine Zeichenfolge enthält (Groß-/Kleinschreibung beachten)
- Prüfen, ob das Feld eine Zeichenfolge enthält (kein Ergebnis)
- Überprüfen Sie, ob das Feld eine bestimmte Anfangszeichenfolge enthält
- Überprüfen Sie, ob das Feld eine bestimmte Endzeichenfolge enthält
Dieser Beitrag befasst sich mit der Verwendung von Regex in MongoDB, um festzustellen, ob ein Feld eine Zeichenfolge enthält oder nicht.
Verwenden Sie regex
in MongoDB
Der reguläre Ausdruck (regex
) ist eine Textzeichenfolge, die ein Suchmuster definiert. Mehrere regex
-Engines sind in leicht unterschiedlicher Syntax geschrieben, aber die Grundlagen sind die gleichen.
Ein regex
-Ausdruck ist eine Zeichenfolge (Zeichenfolge), die auf beiden Seiten von einem einzelnen Schrägstrich (/
) wie im folgenden Beispiel umgeben ist.
db.collection.find({
"k": /pattern/
})
Da Shell-Regex derzeit jedoch nicht in Abfragen für mongoplayground.net,
funktioniert, können Sie stattdessen den unten angegebenen Ausdruck verwenden.
db.collection.find({
"k": {
"$regex": "pattern"
}
})
Der Operator $regex
in MongoDB wird verwendet, um eine Abfrage zu finden, die einen String enthält. MongoDB ermöglicht es Ihnen, einen regulären Ausdruck
zu verwenden, um über eine Abfrage nach einem Muster in einem String zu suchen.
Der Operator $regex
wird verwendet, um Text in Abfragen mit regulären Ausdrücken zu vergleichen.
Syntax:
db.collection.find({"k":{$regex:"pattern"}});
Sie können die Dokumente der Felder anzeigen, die die Wertzeichenfolge enthalten, die Sie im regulären Ausdrucksoperator $regex
übergeben können. Um die obige Syntax zu verstehen, können Sie mit dem folgenden Dokument eine Sammlung von teams
erstellen.
db={
"teams": [
{
team: "Manchester City ",
position: "1st",
points: 70
},
{
team: "Liverpool",
position: "2nd",
points: 69
},
{
team: "Chelsea",
position: "3rd",
points: 59
},
{
team: "Arsenal",
position: "4th",
points: 54
},
{
team: "Tottenham",
position: "5th",
points: 51
},
{
team: "Manchester United",
position: "6th",
points: 50
},
]
}
Überprüfen Sie, ob das Feld eine Zeichenfolge in MongoDB enthält
Sie können den folgenden Code verwenden, um zu überprüfen, ob ein Dokument die Zeichenfolge Man
im Teamfeld enthält.
Anfrage:
db.teams.find({
team: {
"$regex": "Man"
}
})
Ausgang:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"points": 70,
"position": "1st",
"team": "Manchester City "
},
{
"_id": ObjectId("5a934e000102030405000005"),
"points": 50,
"position": "6th",
"team": "Manchester United"
}
]
Prüfen, ob das Feld eine Zeichenfolge enthält (Groß-/Kleinschreibung beachten)
Sie können regex
in MongoDB verwenden, um zu prüfen, ob ein Feld einen bestimmten String-Wert enthält, bei dem die Groß-/Kleinschreibung nicht berücksichtigt wird. Verwenden Sie die Option $i
mit einem regulären Ausdruck in MongoDB.
Die Option $i
hilft Ihnen, Felder mit klein- und großgeschriebenen Zeichenfolgenwerten zu finden.
Anfrage:
db.teams.find({
team: {
"$regex": "MAN",
"options": "$i"
}
})
Ausgang:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"points": 70,
"position": "1st",
"team": "Manchester City "
},
{
"_id": ObjectId("5a934e000102030405000005"),
"points": 50,
"position": "6th",
"team": "Manchester United"
}
]
Prüfen, ob das Feld eine Zeichenfolge enthält (kein Ergebnis)
Wenn ein Feld die gesuchte Zeichenfolge nicht enthält, erhalten Sie kein Dokument gefunden
. Angenommen, Sie verwenden die folgende Abfrage.
Anfrage:
db.teams.find({
team: {
"$regex": "Wolves"
}
})
Ausgang:
no document found
Da kein Dokument den String Wolves
im Teamnamen enthält, erhalten Sie die Ausgabe kein Dokument gefunden
.
Überprüfen Sie, ob das Feld eine bestimmte Anfangszeichenfolge enthält
Wir verwenden Regex in MongoDB, um zu prüfen, ob ein Feld mit einem bestimmten Zeichenfolgenwert beginnt.
Anfrage:
db.teams.find({
team: {
"$regex": "^C"
}
})
Ausgang:
[
{
"_id": ObjectId("5a934e000102030405000002"),
"points": 59,
"position": "3rd",
"team": "Chelsea"
}
]
Sie haben mit Hilfe von regex
in MongoDB erfolgreich ein Dokument gefunden, das mit dem Buchstaben "C"
beginnt.
Überprüfen Sie, ob das Feld eine bestimmte Endzeichenfolge enthält
Lassen Sie uns in diesem Beispiel prüfen, ob ein Feld mit einem bestimmten Zeichenfolgenwert endet.
Anfrage:
db.teams.find({
team: {
"$regex": "l$"
}
})
Ausgang:
[
{
"_id": ObjectId("5a934e000102030405000001"),
"points": 69,
"position": "2nd",
"team": "Liverpool"
},
{
"_id": ObjectId("5a934e000102030405000003"),
"points": 54,
"position": "4th",
"team": "Arsenal"
}
]
Sie haben mit Hilfe von regex
in MongoDB zwei Dokumente gefunden, die auf den Buchstaben "l"
enden.
Durch diesen Artikel haben Sie Beispiele für verschiedene Methoden kennengelernt, die $regex
in MongoDB verwenden, um zu prüfen, ob ein Feld eine Zeichenfolge enthält oder nicht.