Запрос MongoDB с регулярным выражением, которое игнорирует пунктуацию - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь запросить коллекцию в MongoDB, чтобы найти элемент, имя которого совпадает со строкой реквизита через NavLink реактивного маршрутизатора.У пропуска через NavLink есть дефисы, заменяющие пробелы, но есть определенные имена с дефисами в них так же как пробелами.Это приводит к ошибке «not found», так как мое текущее регулярное выражение заменяет все дефисы пробелами.

В интерфейсе я использую NavLink, поэтому я избавляюсь от пробелов, чтобы следовать рекомендациям URL (URL-адрес)пример: example.com/this-persons-name), который отправляет параметр this-persons-name точно в мою базу данных.

Сейчас я использую следующее:

db.collection('people').findOne({ name: {'$regex': req.params.person.replace(/-/g, ' '), $options: 'i'}})

Проблема в том, что если имя имеетв нем уже есть дефис (например: this-persons name), он не может найти этого человека, поскольку вместо этого ищет this persons name.

Это должно работать для следующих строк:

thispersonsname

this-persons name

this-persons-name

this persons name

1 Ответ

0 голосов
/ 25 апреля 2019

Я решил это, реализовав это по-другому.Я создал атрибут slug для каждого элемента

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