Ich suche einen Operator, mit dem ich überprüfen kann, ob der Wert eines Feldes eine bestimmte Zeichenfolge enthält.
Etwas wie:
db.users.findOne({$contains:{"username":"son"}})
Ist das möglich?
Sie können dies mit dem folgenden Code tun.
db.users.findOne({"username" : {$regex : ".*son.*"}});
db.users.findOne({"username" : {$regex : "son"}});
Da Mongo Shell Regex unterstützt, ist dies durchaus möglich.
Wenn bei der Abfrage die Groß- und Kleinschreibung nicht berücksichtigt werden soll, können Sie die Option "i" verwenden, wie unten gezeigt:
Siehe: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
quelle
db.users.findOne({"username" : /.*son.*/});
könnte es meiner Meinung nach auch übertrieben sein und der/son/
{ username: /son/ }
https://docs.mongodb.com/manual/reference/sql-comparison/
http://php.net/manual/en/mongo.sqltomongo.php
MySQL
MongoDB
quelle
Ab Version 2.4 können Sie einen Textindex für die Felder erstellen, um den $ text- Operator zu suchen und zum Abfragen zu verwenden.
Erstellen Sie zunächst den Index:
db.users.createIndex( { "username": "text" } )
Dann, um zu suchen:
db.users.find( { $text: { $search: "son" } } )
Benchmarks (~ 150.000 Dokumente):
Anmerkungen:
db.collection.createIndex( { "$**": "text" } )
.quelle
Da dies einer der ersten Treffer in den Suchmaschinen ist und keiner der oben genannten Treffer für MongoDB 3.x zu funktionieren scheint, ist hier eine Regex-Suche, die funktioniert:
Keine Notwendigkeit, einen zusätzlichen Index oder ähnliches zu erstellen.
quelle
Folgendes müssen Sie tun, wenn Sie MongoDB über Python verbinden
Sie können auch einen Variablennamen anstelle von 'Son' und damit die Zeichenfolgenverkettung verwenden.
quelle
.*${value}.*
}Einfachster Weg, um diese Aufgabe zu erfüllen
Wenn Sie möchten, dass bei der Abfrage zwischen Groß- und Kleinschreibung unterschieden wird
Wenn Sie möchten, dass bei der Abfrage die Groß- und Kleinschreibung nicht berücksichtigt wird
quelle
Ideale Antwort auf die Option " Index i verwenden " für Groß- und Kleinschreibung
quelle
Dies sollte die Arbeit erledigen
Das
i
ist nur da, um Einschränkungen beim Abgleichen einzelner Buchstabenfälle zu verhindern.Sie können die $ regex-Dokumentation in der MongoDB-Dokumentation überprüfen. Hier ist ein Link: https://docs.mongodb.com/manual/reference/operator/query/regex/
quelle
So ignorieren Sie HTML-Tags in einer RegExp-Übereinstimmung:
Dies ist wahrscheinlich sehr einfach in einen MongoDB-Aggregationsfilter umzuwandeln.
quelle