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.