Введение
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.