MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Diese LEFT()-SQL in MongoDB-Abfrage erstellen?

Wenn Sie nur eine Telefonnummer haben möchten, die mit Nummer „3“ beginnt, können Sie einfach die intelligente Entscheidung von @mstearn verwenden , hier nur c# Realisierung:

var query = Query.EQ("PhoneNumber", new BsonRegularExpression("^3"));

Aber nehmen wir an, wenn Sie die ersten 3 Zahlen im Bereich 345 - 369 abfragen müssen, damit es funktioniert (ohne langsame Operatoren:$where , $regex ) können Sie ein zusätzliches Feld erstellen und dort die ersten 3 Nummern (Vorwahl) des Telefons speichern. Verwenden Sie dann die von @yi vorgeschlagene Abfrage _H , hier nochmal c#-Treiberrealisierung:

var query = Query.GTE("PhoneAreaCode", 345).LTE(369);

Kümmern Sie sich nicht um zusätzlich Feld in mongodb -- es ist gängige Praxis. Zusätzliche Felder arbeiten normalerweise schneller als jede Berechnung während der Abfrage.