Wählen Sie die string-Länge in mongodb
Wie die Abfrage von mongodb zu finden, die Länge einer bestimmten Zeichenfolge/Textfeld?
Und wie würden Sie die maximale Länge der Abfrage einstellen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie die Abfrage von mongodb zu finden, die Länge einer bestimmten Zeichenfolge/Textfeld?
Und wie würden Sie die maximale Länge der Abfrage einstellen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider die aggregation framework nicht die Unterstützung der "len" - operator für die automatische Konvertierung von strings auf Ihre Länge, während Sie eine Abfrage. So haben Sie zu lösen, diese in Ihrem eigenen code. Sie konnte
Den Unterschied zwischen dieser Methode ist, dass die ersten Läufe auf die Datenbank, während der letztere läuft auf Ihrem Anwendung-server. Ich würde empfehlen die zweite option, weil MapReduce können sehr langsam und umständlich zu bedienen.
Himmel ist die Grenze! Nein, eigentlich ist es
16 MB
für ein Dokument inmongodb
. Diese können die maximale Länge einer Zeichenfolge in den Akten.Durch, um herauszufinden, die maximale Länge, die in einer Abfrage festgelegt haben, können Sie dies umgehen:
wie etwa "regulären Ausdruck verwenden" statt.
So, ich hoffe, das hilft. 🙂 Ich lief in das gleiche problem - und es dauerte eine Weile, bis die map-reduce funktioniert.
Antwort halten Sie die map-reduce Ergebnis
Gut Glück, lassen Sie mich wissen, wenn Sie brauchen eine andere Variante!
Ab
Mongo 3.4
, die$strLenCP
aggregation operator kann verwendet werden, um eine Zeichenfolge-Länge:und um die max Länge von allen Dokumenten über ein
$group
/$max
Bühne:Im Gegensatz zu SQL, MongoDB nicht wirklich wissen, die Länge der Felder als solche. Am meisten, wenn es Indizes weiß es, dass das Feld entweder unter 1024 bytes oder nicht.
Als solches ist etwas, das Sie wahrscheinlich haben, zu beheben client-Seite. Man könnte ein
$where
hier, aber ich denke, dass Ihr bei dieser Suche schief, wenn Sie das tun wollen.Könnte man auch verwenden, und der HERR hier als @Philipp Staaten, aber wieder sind Sie wahrscheinlich auf der Suche in die falsche Sache hier.
Einer Abfrage in MongoDB ist in der Tat ein BSON-Dokument. So wird die maximale Länge der Abfrage gesetzt (je nachdem, was Sie definieren als eine "Abfrage") immer 16 MB (im moment).
Viele Treiber bieten eine Möglichkeit zum verschlüsseln einer Struktur (hash-oder dict-oder was auch immer) BSON so dass Sie zu beurteilen, die Länge der kodierten Zeichenfolge zu verstehen, die Größe Ihrer Abfrage.