MongoDB $ strcasecmp

MongoDB $ strcasecmp
Während wir in verschiedenen Sprachen einen Vergleich machen, verwenden wir tendenziell Vergleichsbetreiber. Der Vergleich könnte nach der Wahl eines Benutzers Fallempfindlichkeit oder unempfindlich sein. Genau wie in anderen Entwicklungsumgebungen hat MongoDB seine Vergleichsbetreiber und einer dieser Betreiber ist der „StrCasecmp“ -Portierer. Der MongoDB StrCaseCMP-Operator vergleicht zwei Stringwerte in unempfindlicher Weise i.e., Ignorieren Sie den String -Fall und suchen Sie. Der StrCaseCMP -Operator gibt 0 zurück, wenn beide Zeichenfolgen gleich sind, 1, wenn der erste Wert größer als der zweite ist, und -1, wenn der erste Wert kleiner als der zweite Wert ist. Der Bediener kann in einer MongoDB -Abfrage verwendet werden, um Dokumente basierend auf Zeichenfolgenwerten zu filtern.

Sammlung erstellen

Beginnen Sie mit der Erstellung einer neuen Datenbanksammlung in Ihrer Datenbankbank. Der unten beigefügte Befehl erstellt eine neue Sammlung namens "Daten" in unserer MongoDB -Datenbank "Test". Die Antwort von OK: 1 zeigt an, dass die Sammlung erfolgreich erstellt wurde und weiter verwendet werden kann.

Test> db.CreateCollection ("Daten")
OK: 1

Fügen Sie Datensätze zur Sammlung ein

Zu Beginn der Erstellung einer Sammlung muss sie leer sein, da wir ihnen noch keine Dokumente hinzugefügt haben. Um den StrCaseCMP -Operator mit einer Datenerfassung durchzuführen, sollte er Dokumente haben. Daher werden wir die MongoDB InsertMany -Funktion verwenden, um zahlreiche Datensätze zu einer Sammlung mit dem Namen "Daten" gleichzeitig hinzuzufügen. Die eingefügten Dokumente sind im Format von Schlüsselwertpaaren mit Tasten „Titel“ und „Desc“ und ihren jeweiligen Werten. Die Werte werden eingefügt "John", "John", "Idk" und "Lisa" für den "Titel "schlüssel und" ein zufälliger Typ "," guter Junge "," Idont Know "und" Enginerer "für die" Desc ”-Staste. Der Befehl besteht darin, 4 neue Dokumente hinzuzufügen. Die Ausgabe zeigt das „Anerkennung“ als einen booleschen Wert, der auf TRUE eingestellt ist, was darauf hinweist, dass die Abfrage vom MongoDB -Server erfolgreich anerkannt und ausgeführt wurde.

Test> db.Daten.InsertMany ([Titel: "John", Desc: "Ein zufälliger Typ", Titel: "John", Desc: "Good Boy", Titel: "IDK", Desc: "Idont Know", Titel : "Lisa", Desc: "Enginnerer"])

Anerkannt: wahr,
InsertDIDs:
'0': ObjectID ("63C90D6A42844A817C33167C"),
'1': ObjectID ("63C90D6A42844A817C33167D"),
'2': ObjectID ("63C90D6A42844A817C33167E"),
'3': ObjectID ("63C90D6A42844A817C33167F")

Zeigen Sie die Sammlungsdatensätze an

Nachdem wir insgesamt 4 Datensätze in die Erfassung der Datenbank „Test“ eingefügt haben, sollten wir die Dokumente mindestens einmal überprüfen. Daher müssen wir die eingefügten Datensätze in der MongoDB -Shell zur Anzeige anzeigen. Der Befehl zum Anzeigen der Datensätze wurde unten beigefügt. Durch die Verwendung der MongoDB Find () -Methode haben wir alle Dokumente der „Daten“ -Kollektion abgerufen. Das leere Objekt als Argument an die Methode Find () übergeben bedeutet, dass keine Filterbedingung angewendet wird und alle Dokumente in der Sammlung zurückgegeben werden. Die Ausgabe dieses Befehls ist ein Array von Dokumenten, die jeweils die Felder von _id, Titel und Desc und deren jeweilige Werte enthalten, die früher in der Sammlung hinzugefügt wurden. Die Ausgabe bestätigt, dass die Dokumente in der Sammlung vorhanden sind und zur weiteren Verarbeitung abgerufen werden können.

Test> db.Daten.finden()
[_id: ObjectID ("63C90D6A42844A817C33167C"), Titel: 'John', Desc: 'A Random Guy',
_id: ObjectID ("63C90D6A42844A817C33167D"), Titel: 'John', Desc: 'Good Boy',
_id: ObjectID ("63C90D6A42844A817C33167E"), Titel: 'IDK', Desc: 'Idont Know',
oder

Beispiel # 01:

In unserer ersten Abbildung von MongoDB werden wir den StrCaseCMP-Operator verwenden, um einen Vergleich zwischen zwei Stringwerten durchzuführen: Fall-unempfindlicher Vergleich. Zu diesem Zweck werden wir die unten gezeigte Abfrage in der MongoDB -Shell ausführen, die die Aggregat -Funktion von MongoDB verwendet, um eine Reihe von Vorgängen auf einer Sammlung mit dem Namen "Data" durchzuführen. Der erste Vorgang ist eine $ -Projekt -Phase, die die Dokumente in der Sammlung durch Hinzufügen oder Entfernen von Feldern ändert. In diesem Fall wird in der $ -Projekt -Phase alle Datensätze des Feldes „Titel“ angezeigt und ein neues Feld mit dem Namen „Ergebnis“ zu jedem Dokument hinzufügen. Dies ist das Ergebnis des Vergleichs des Wertes des Felds „Titel“ mit dem Vergleich Die Zeichenfolge "IDK" mit dem $ strcasecmp -Operator.

Der Vergleich ist unempfindlich, was bedeutet, dass „John“ und „John“ als gleich angesehen werden würden. Das neue Feld "Ergebnis" zeigt die Ausgabe des Vergleichs des Felds "Titel" mit "IDK" an. 0 Auf dem dritten Datensatz zeigt, dass die Zeichenfolge „ID“ gleich der Zeichenfolge „IDK“ im Feld "Titel" ist, während der Rest 1 ist.

Test> db.Daten.Aggregate ([$ project: title: 1, Ergebnis: $ strcasecmp: ["$ title", "idk"]])
[_id: ObjectID ("63C90D6A42844A817C33167C"), Titel: 'John', Ergebnis: 1,
_id: ObjectID ("63C90D6A42844A817C33167D"), Titel: 'John', Ergebnis: 1,
_id: ObjectID ("63C90D6A42844A817C33167E"), Titel: 'IDK', Ergebnis: 0,
_id: ObjectID ("63C90D6A42844A817C33167F"), Titel: 'Lisa', Ergebnis: 1]

Beispiel # 02:

Lassen Sie uns ein neues Veranschaulichung des Vergleichs von Zeichenfolgen in der mongoDB-Datenbank haben. Diesmal verwendet der von uns verwendete Code dieselbe Aggregatfunktion, um einen Vergleich im Feld "Titel" durchzuführen. Die $ -Projekt -Phase erstellt ein neues Feld mit demselben Namen: „Ergebnis“, das die Ausgabe des Vergleichs speichert. Zum Vergleich verwenden wir den gleichen $ strcasecmp -Operator. Der $ strcasecmp -Operator wird mit zwei Argumenten übergeben: "$ title", was der Wert des Felds "Titel" in jedem Dokument ist, und "John", der die Zeichenfolge ist, die als Vergleichswert verwendet wird. In diesem Beispiel enthält das erste Dokument ein "Titel" -Feld von 'John', das „John“ entspricht, also ist das Ergebnis 0.

Das zweite Dokument enthält ein "Titel" -Feld von 'John', das auch gleich „John“, aber in Großbuchstaben ist. Das „Ergebnis“ ist also auch 0. Das dritte Dokument enthält ein "Titel" -Feld von 'IDK', das in Bezug auf die lexikografische Reihenfolge weniger als „John“ ist. Das Ergebnis ist also -1. Das vierte Dokument hat ein "Titel" -Feld von 'Lisa', das in Bezug auf die lexikografische Reihenfolge größer ist als „John“. Das Ergebnis ist also 1.

Test> db.Daten.Aggregate ([$ Project: Titel: 1, Ergebnis: $ strcasecmp: ["$ title", "John"]])
[_id: ObjectID ("63C90D6A42844A817C33167C"), Titel: 'John', Ergebnis: 0,
_id: ObjectID ("63C90D6A42844A817C33167D"), Titel: 'John', Ergebnis: 0,
_id: ObjectID ("63C90D6A42844A817C33167E"), Titel: 'IDK', Ergebnis: -1,
_id: ObjectID ("63C90D6A42844A817C33167F"), Titel: 'Lisa', Ergebnis: 1]

Beispiel # 03:

In unserer letzten Illustration werden wir das Feld "Desc" der "Daten" -Kollektion verwenden, um mit einer neuen Zeichenfolge verglichen zu werden. Der $ strcasecmp -Operator wird zwei Argumente übergeben: "$ Desc", was der Wert des Felds "Desc" in jedem Dokument und "Idont Know" ist. Dies ist die Zeichenfolge, die als Vergleichswert verwendet wird.

Die ersten, zweiten und vierten Dokumente haben ein "Desc" -Feld von 'A Random Guy', der weniger oder größer ist als die Zeichenfolge „Idont Know“ in Bezug auf lexikografische Reihenfolge. Das Ergebnis für diese Aufzeichnungen ist also -1. Das dritte Dokument enthält ein "Desc" -Feld von "Idont Know", das unabhängig vom Buchstaben von Buchstaben "Idont Know" entspricht, daher ist das Ergebnis 0.

Test> db.Daten.Aggregate ([$ project: desc: 1, Ergebnis: $ strcasecmp: ["$ Desc", "Idont Know"]])
[_id: ObjectID ("63C90D6A42844A817C33167C"), Desc: 'a Random Guy', Ergebnis: -1,
_id: ObjectID ("63C90D6A42844A817C33167D"), Desc: 'Good Boy', Ergebnis: -1,
_id: ObjectID ("63C90D6A42844A817C33167E"), Desc: 'Idont Know', Ergebnis: 0,
_id: ObjectID ("63C90D6A42844A817C33167F"), Desc: 'Enginnerer', Ergebnis: -1]

Abschluss

Dieser Leitfaden führt das Konzept und die Verwendung des StrCaseCMP -Operators von MongoDB vor. Wir haben zusammen mit dem StrCaseCMP -Operator eine neue Sammlung erstellt und Aggregate () -Funktionsbefehle durchgeführt, um die Verwendung des StrCaseCMP -Operators zu demonstrieren. Die in diesem Artikel verwendeten Beispiele zeigen, wie eine einzelne Zeichenfolge mit der Inssitiv mit den Stringwerten von Sammelfeldern verglichen werden kann.