Я пытаюсь запросить коллекцию в 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