Как использовать оператор SQL LIKE в MongoDB
MongoDB - мощный сервер базы данных Nosql. Он использует документы, подобные 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": "Черный"}
{"_id": ObjectId ("5f697e55cc528930cde49f56"), "id": 103, "color": "Синий"}
Вышеупомянутое возвращает все документы в коллекции. Давайте отфильтруем результаты из базы данных.
Например, выборка всех документов содержащих "color": "Pink"
. Выполните такой запрос:
db.colors.find ({color: "Pink"})
Использование .find() в качестве оператора SQL LIKE
Вы можете использовать регулярное выражение для поиска документов в monogdb. Это будет похоже на операторы LIKE в запросах SQL.
Search String Anywhere - для поиска во всем документе, в названии которого есть «Pink» в любом месте строки. Вторая инструкция ищет все документы, в которых указан цвет "Bl".
### SQL Statement
select * from colors where color LIKE "%Pink%"
### Mongodb Statement
db.colors.find(color: "/Pink/")
Search String Start With - будет соответствовать всей строке, начинающейся с символов P. Символ «^» используется для указания поиска с начала строки.
### SQL Statement
select * from colors where color LIKE "P%"
### Mongodb Statement
db.colors.find(color: "/^P/")
Search String End With - символ доллара «$» используется для сопоставления конца строки с определенными символами. В приведенном ниже примере все строки заканчиваются символом «k».
### SQL Statement
select * from colors where color LIKE "%k"
### Mongodb Statement
db.colors.find(color: "/k$/")
Search String In Any Case - это метод поиска по умолчанию с учетом регистра символов. Вы можете поручить команде find в любом случае сопоставить символы с параметром "i", как это используется в приведенном ниже примере.
### SQL Statement
select * from colors where color LIKE BINARY "pink"
### Mongodb Statement
db.colors.find(color: "/pink/i")