Вы можете использовать следующий синтаксис в MongoDB, чтобы проверить, содержит ли определенное поле определенную строку:
db.collection.findOne({ name : { $regex : /string/ }})
В следующих примерах показано, как использовать этот синтаксис с набором команд со следующими документами:
db.teams.insertOne({team: " Mavs", position: " Guard", points: 31 })
db.teams.insertOne({team: " Spurs", position: " Guard", points: 22 })
db.teams.insertOne({team: " Rockets", position: " Center", points: 19 })
db.teams.insertOne({team: " Warriors", position: " Forward", points: 26 })
db.teams.insertOne({team: " Cavs", position: " Guard", points: 33 })
Пример 1: проверьте, содержит ли поле строку
Мы можем использовать следующий код, чтобы проверить, есть ли какой-либо документ, содержащий строку «avs» в поле команды:
db.teams.findOne({ team : { $regex : /avs/ }})
Этот запрос возвращает следующий документ:
{ _id: ObjectId("618050098ffcfe76d07b1da5"),
team: 'Mavs',
position: 'Guard',
points: 31 }
Обратите внимание, что функция findOne() возвращает первый документ в коллекции, который удовлетворяет критериям запроса.
Это означает, что другие команды также могут иметь строку «avs» в названии своей команды, но документ, содержащий название команды «Mavs», был просто первым.
Пример 2. Проверьте, содержит ли поле строку (без учета регистра)
Мы также можем использовать i после строки, чтобы выполнить поиск без учета регистра .
Например, предположим, что мы используем следующий запрос:
db.teams.findOne({ team : { $regex : /AVS/i }})
Этот запрос также возвращает следующий документ:
{ _id: ObjectId("618050098ffcfe76d07b1da5"),
team: 'Mavs',
position: 'Guard',
points: 31 }
Пример 3. Проверка наличия в поле строки (нет результата)
Если поле не содержит конкретной строки, которую мы искали, в результате мы просто получим null .
Например, предположим, что мы используем следующий запрос:
db.teams.findOne({ team : { $regex : /ricks/ }})
Этот запрос возвращает следующий результат:
null
Так как ни в одном документе нет строки ricks в названии команды, в результате получаем null .
Примечание.Полную документацию по $regex можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:
MongoDB: как запросить «не нуль» в определенном поле
MongoDB: как делать запросы с регулярным выражением «Нравится»
MongoDB: как добавить новое поле в коллекцию
MongoDB: как удалить поле из каждого документа