Heim > Backend-Entwicklung > Golang > Warum gibt meine Regex-Abfrage für den MongoDB Go-Treiber keine Ergebnisse zurück?

Warum gibt meine Regex-Abfrage für den MongoDB Go-Treiber keine Ergebnisse zurück?

Susan Sarandon
Freigeben: 2024-11-02 21:35:02
Original
890 Leute haben es durchsucht

Why is my MongoDB Go Driver regex query not returning any results?

Regex-Abfragen in MongoDB mit dem Go-Treiber

MongoDB bietet einen leistungsstarken Abfragemechanismus, mit dem Sie Dokumente basierend auf verschiedenen Kriterien abrufen können. Eines dieser Kriterien sind reguläre Ausdrücke, die häufig für Mustervergleiche und Teilzeichenfolgensuchen verwendet werden.

Problem aufgetreten:

Beim Versuch, den MongoDB Go-Treiber für die Ausführung zu verwenden Bei einer Abfrage mit regulären Ausdrücken ist ein Benutzer auf ein Problem gestoßen, bei dem die erwarteten Ergebnisse nicht zurückgegeben wurden. Trotz Befolgung der Beispiele in der Dokumentation blieb der Cursor leer.

Grundursache:

Die Grundursache dieses Problems liegt in der Konstruktion der primitiven.Regex-Struktur. Das Musterfeld dieser Struktur erwartet ein reguläres Ausdrucksmuster ohne führende und abschließende Schrägstriche.

Lösung:

Um dieses Problem zu beheben, entfernen Sie die Schrägstriche, die das reguläre Ausdrucksmuster umgeben in der primitive.Regex-Struktur. Hier ist der korrigierte Code:

<code class="go">filter := bson.D{{"text", primitive.Regex{Pattern: "he", Options: ""}}}</code>
Nach dem Login kopieren

Beispiel:

Mit diesem korrigierten Code sollte die folgende Abfrage nun die erwarteten Ergebnisse zurückgeben:

<code class="go">ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

cur, err := coll.Find(ctx, filter)
if err != nil {
    fmt.Println(err)
    return
}

i := 0
for cur.Next(ctx) {
    i = i + 1
}
fmt.Println("Found", i, "elements")</code>
Nach dem Login kopieren

Durch das Entfernen der Schrägstriche rund um das reguläre Ausdrucksmuster kann die primitive.Regex-Struktur jetzt korrekt mit der gewünschten Teilzeichenfolge im Feld „Text“ der Dokumente übereinstimmen und die erwarteten Ergebnisse zurückgeben.

Das obige ist der detaillierte Inhalt vonWarum gibt meine Regex-Abfrage für den MongoDB Go-Treiber keine Ergebnisse zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage