Я хочу найти учетную запись по имени (в коллекции MongoDB из 50K счетов)MongoDB, выполнение запроса регулярным выражением на индексированных полей
Обычным образом: мы находим шпагатом
db.accounts.find({ name: 'Jon Skeet' }) // indexes help improve performance!
Как насчет регулярного выражения? Это дорогостоящая операция?
db.accounts.find({ name: /Jon Skeet/ }) // worry! how indexes work with regex?
Редактировать:
Согласно WiredPrairie:
MongoDB использовать префикс из RegEx для поиска индексов (например: /^prefix.*/
):
db.accounts.find({ name: /^Jon Skeet/ }) // indexes will help!'
@ dirkk, я хочу получить больше опыта и объяснений. Я также хочу поделиться этим вопросом. – damphat
Чтобы регулярное выражение использовало индекс, он должен использовать якорь, как показано в документах: http://docs.mongodb.org/manual/reference/operator/regex/ – WiredPrairie
Возможный дубликат [Как запросить mongodb с "like" ?] (http://stackoverflow.com/questions/3305561/how-to-query-mongodb-with-like) – WiredPrairie