Si solo desea un número de teléfono que comience con el número '3', puede usar la decisión inteligente de @mstearn , aquí solo c# realización:
var query = Query.EQ("PhoneNumber", new BsonRegularExpression("^3"));
Pero digamos que si necesita consultar los primeros 3 números en el rango 345 -- 369 para que funcione (sin operadores lentos:$where
, $regex
) puede crear un campo adicional y almacenar allí los primeros 3 números (código de área) del teléfono. Y luego use la consulta propuesta por @yi _H, aquí de nuevo la realización del controlador c#:
var query = Query.GTE("PhoneAreaCode", 345).LTE(369);
No te preocupes por extra campo en mongodb - es una práctica común. Los campos adicionales suelen funcionar más rápido que cualquier cálculo durante la consulta.