Mongo Driver C# уже использует глобальный флаг для регулярных выраженийC#

Место общения программистов C#
Anonymous
Mongo Driver C# уже использует глобальный флаг для регулярных выражений

Сообщение Anonymous »

В настоящее время у меня есть универсальная функция, позволяющая всегда запрашивать мою коллекцию mongo с ограничением и получать весь результат в одном пакете.
Я заметил, что запросы с помощью contains и StartWith занимают больше времени, чем ожидалось. Я знаю, что такие запросы занимают гораздо больше времени, чем запросы равенства, но я уже привык их использовать, поэтому я знаю, что они не должны занимать так много времени.
При исследовании я обнаружил, что каждый раз, когда я использую функции contains или StartWith в выражении, драйвер (версия 2.29) использует глобальный флаг, который, как я считаю, является причиной.
Поэтому, когда я вызываю функцию

GetMany(collection,t =>
t.SomeStringField.StartWith("TEST"))

В текущих операциях я вижу следующее:

SomeStringField : /^TEST/g

Разве это не должно быть /^TEST/ ? Без g?

Код: Выделить всё

public async Task GetMany(IMongoCollection collection, Expression predicate, int limit = 180) where T : class
{
AggregateOptions options = new AggregateOptions() { BatchSize = limit};

return await collection.AsQueryable(options).Where(predicate).Take(limit).ToListAsync();
}
Как запретить драйверу использовать глобальный флаг?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -for-regex

Вернуться в «C#»