Как использовать оператор SQL LIKE в MongoDB

12 set 2022 2 min di lettura
Как использовать оператор SQL LIKE в MongoDB
Indice dei contenuti

Введение

MongoDB — мощный сервер базы данных Nosql. MongoDB использует документы в формате JSON с дополнительными схемами для хранения данных.

Для разработчика всегда критической задачей является организация данных. Поскольку он играет наиболее важную роль в производительности приложения. В MongoDB вы можете использовать запросы, аналогичные оператору SQL LIKE, для извлечения данных.

Для примеров, используемых в этом руководстве, мы используем некоторые фиктивные данные, как показано ниже. Вы также можете создать базу данных и выполнить следующие команды для вставки фиктивных данных.

db.colors.insert({ "id": 100, "color": "Pink"})
db.colors.insert({ "id": 101, "color": "Purple"})
db.colors.insert({ "id": 102, "color": "Black"})
db.colors.insert({ "id": 103, "color": "Blue"})

Используйте оператор find ()

Команда Mongodb find() используется для поиска документов в коллекции. Эта функция предоставляет гибкие возможности поиска документов.

Функция find() по умолчанию извлекает все документы в коллекции. Он также позволяет запрашивать коллекцию документов, передавая некоторые простые параметры и возвращая курсор.

Давайте посмотрим на простой пример метода .find():

db.colors.find()

Выходное сообщение должно выглядеть так:

{ "_id": ObjectId("5f697e4ccc528930cde49f53"), "id": 100, "color": "Pink" }
 { "_id": ObjectId("5f697e4fcc528930cde49f54"), "id": 101, "color": "Purple" }
 { "_id": ObjectId("5f697e52cc528930cde49f55"), "id": 102, "color": "Black" }
 { "_id": ObjectId("5f697e55cc528930cde49f56"), "id": 103, "color": "Blue" }

Приведенное выше возвращает все документы в коллекции. Но это очень редкое использование в производстве. Обычно требуется список отфильтрованных результатов из базы данных.

Например, он извлекает все документы, содержащие цвет: Розовый. Запустите следующий запрос:

db.colors.find({color: "Pink"})

Выходное сообщение должно выглядеть так:

{ "_id": ObjectId("5f7f1e162422ff180d76fb00"), "id": 100, "color": "Pink" }

Используйте di.find() в качестве оператора SQL LIKE

Вы можете использовать регулярное выражение для поиска документов в Monogdb. Это будет похоже на операторы LIKE в SQL-запросах.

Строка поиска везде: для поиска всех документов, в которых название цвета содержит «Розовый» в любом месте строки. Второй оператор ищет все документы, в названии которых есть Bl:

db.colors.find({color: /Pink/})
db.colors.find({color: /Bl/})

Строка поиска начинается: будет соответствовать всем строкам, начинающимся с символов P. Верхний индекс ^ используется для начала:

db.colors.find({color: /^P/})

Поиск конца строки: знак доллара $ используется для сопоставления концов строки с определенными символами. В следующем примере сопоставляются все строки, оканчивающиеся на символ k:

db.colors.find({color: /k$/})

Строка поиска в любой позиции: метод поиска по умолчанию чувствителен к регистру. Вы можете указать команде find находить символы в любом случае с помощью параметра i, как показано в следующем примере:

db.colors.find({color: /k$/i})

Вывод

В этом руководстве вы узнали, как выполнять поиск в базе данных, аналогичный операторам SQL LIKE в Mongodb.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.