Монго регулярное выражение для поиска фиксированного целого числа в столбце типа строки? - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть столбец Mongo DB, который содержит значения вида "1001,100" и "1001", хранящиеся в виде строки. При поиске «100» в Java-классе я использовал

query.put(dbColumn, java.util.regex.Pattern.compile(object));

, где объект равен 100. Этот запрос приводит к двум значениям, поскольку он ищет 100, а 1001 содержит 100. Есть ли способ просто получить значение, которое содержит только 100, как часть его строки, используя регулярное выражение (т.е. результат должен быть только "1001.100")

1 Ответ

1 голос
/ 11 ноября 2011

Как я понимаю, вы говорите, что ваш столбец Mongo DB может содержать несколько значений, разделенных запятыми. Например, строка «1001,100» представляет набор значений 1001 и 100. Вы хотите искать определенное значение, например 100, в столбце, но должно быть только полное значение, а не частичное значение. засчитывается как совпадение.

Если я правильно понял, то в вашем регулярном выражении вам нужно объявить, что искомое значение является полным, а не частичным. Вы делаете это, добавляя границу слова в начале и конце значения:

\b100\b

Это приведет к тому, что поиск будет соответствовать только полным значениям.

Причина, по которой это работает, заключается в том, что оператор \b соответствует границе слова . Граница слова - это место на входе, где на одной стороне границы находится элемент слова, а на другой стороне элемент без слов. Так что \b100\b будет соответствовать только тогда, когда 100 имеет несловарные элементы с обеих сторон - в вашем случае, запятые или начало или конец поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...