2016-10-20 2 views
0

Я вижу запрос регулярного выражения mongo, не возвращающий результат, когда строка поиска в регулярном выражении очень велика, а не ее ошибка бросания. У меня есть сценарий, в котором я добавляю много имен для создания регулярного выражения, и поэтому моя строка поиска регулярных выражений выходит за рамки 40000 символов. например:Имеет ли запрос регулярного выражения mongo ограничение символов, если строка поиска регулярных выражений больше этого предела, она выдает ошибку

db.getCollection('collection').find(
    {"name":{"$regex" :"name1 | name2 | name3", "$options":"-i"}} 
) 

ответ

0

Можете ли вы объяснить, почему вы это делаете? Идея регулярного выражения заключается в создании выражения, с которым вы сопоставляете (несколько) значений.

пример выражение:

name\d+ 

будет соответствовать на всех «НТБ» долины, где х представляет собой десятичный.

Идея заключается в создании единого выражения для заполнения запроса.

Если вы хотите, чтобы соответствовать по нескольким значениям строк вы можете использовать $and оператор

+0

Я делаю регистрозависимости поиска, запрос, как указано ниже – user7045224

+0

db.collection.find (имя: { «$ регулярное выражение»:» red | white | blue | green "" $ options ": 'i')}) – user7045224

+0

строка значений, переданная в regex, может действительно расти очень большой, и я вижу исключение mongo throwing, когда строка содержит символы выше 37000 – user7045224

Смежные вопросы