Si vous voulez juste le numéro de téléphone qui est commence à partir du numéro '3' vous pouvez simplement utiliser décision intelligente de @mstearn, ici juste C# réalisation:
var query = Query.EQ("PhoneNumber", new BsonRegularExpression("^3"));
Mais laisse dire si vous avez besoin d'interroger les 3 premiers numéros dans la plage 345 - 369 pour le faire fonctionner (sans opérateurs lents: $where
, $regex
) vous pouvez créer un champ supplémentaire et y stocker les 3 premiers chiffres (indicatif régional) du téléphone. Et puis utilisez la requête proposée par @yi _H, là encore C# réalisation du pilote:
var query = Query.GTE("PhoneAreaCode", 345).LTE(369);
Ne vous préoccupez pas champ supplémentaire dans MongoDB - il est pratique courante. Champs supplémentaires fonctionnant habituellement plus vite que tout calcul lors de l'interrogation.
LEFT est la sous-chaîne pour les trois premiers caractères de la chaîne. –
Merci, mais comment l'utiliser? Comme ça? var gte = Query.GTE ("LEFT (PhoneNumber, 3)", "300"); – CmdrTallen