Если вы просто хотите, чтобы номер телефона начинался с номера '3', вы можете просто использовать умное решение @ mstearn , здесь просто реализация c #:
var query = Query.EQ("PhoneNumber", new BsonRegularExpression("^3"));
Но, скажем, еслиВам нужно запросить первые 3 цифры в диапазоне 345 - 369, чтобы заставить его работать (без медленных операторов: $where
, $regex
), вы можете создать дополнительное поле и сохранить там первые 3 цифры (код города) телефона.А затем используйте запрос, предложенный @ yi _H, и здесь реализация драйвера c #:
var query = Query.GTE("PhoneAreaCode", 345).LTE(369);
Не волнует поле extra в mongodb - это часто встречаетсяпрактика.Дополнительные поля обычно работают быстрее, чем любые вычисления во время запроса.