Я хочу запросить что-то с like
запросом SQL :
SELECT * FROM users WHERE name LIKE '%m%'
Как мне добиться того же в MongoDB? Я не могу найти оператора like
в документации .
sql
mongodb
mongodb-query
sql-like
Freewind
источник
источник
5
голоса для тега like-operator . Могу ли я попросить вас предложить sql-like как синоним ?Ответы:
Это должно быть:
или похожие:
Вы ищете что-то, что где-то содержит "m" (оператор SQL '
%
' эквивалентен '.*
' регулярного выражения '), а не то, что "m" привязано к началу строки.примечание: mongodb использует регулярные выражения, которые являются более мощными, чем "LIKE" в sql. С помощью регулярных выражений вы можете создать любой шаблон, который вы себе представляете.
Для получения дополнительной информации о регулярных выражениях обратитесь к этой ссылке https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
источник
LIKE
запрос в SQL.javascript db.users.find({ "name": { $regex: /m/i } })
выход: Пауло, Патрик
выход: Пауло, Патрик
выход: педро
источник
select name from users;
что просто перечисляет всех пользователей?В
ты можешь сделать:
источник
%sometext%
db.users.find({'name': {'$regex': 'sometext', '$options': 'i'}})
В PHP вы можете использовать следующий код:
источник
$collection.where(field => {"$regex" => value})
Вы бы использовали регулярные выражения для этого в Монго.
например:
db.users.find({"name": /^m/})
источник
Там уже много ответов. Я даю различные типы требований и решений для поиска строк с помощью регулярных выражений.
Вы можете сделать с регулярным выражением, которые содержат слово, например, как. Также вы можете использовать
$options => i
для поиска без учета регистраСодержит
string
Не содержит
string
только регулярных выраженийТочный регистр нечувствителен
string
Начать с
string
Конец с
string
Сохраните это как закладку и ссылку для любых других изменений, которые могут вам понадобиться.
источник
У вас есть 2 варианта:
или
На втором у вас есть больше опций, например «i» в опциях, чтобы найти использование без учета регистра. А что касается «строки», вы можете использовать, например, «. String. » (% String%) или «string. *» (String%) и «. * String) (% string). Вы можете использовать регулярное выражение как пожелаете.
Наслаждайтесь!
источник
Если используется node.js , он говорит, что вы можете написать это:
Также вы можете написать это:
источник
collection.where(field => Regexp.new(value))
Уже у вас есть ответы, но чтобы сопоставить регулярное выражение с учетом регистра
Вы можете использовать следующий запрос
i
В/m/i
показывает случай нечувствительность и.pretty()
обеспечивает более симпатичный выходисточник
var search="feacebook"
так как я могу установить ниже @ The6thSens Да, ноdb.users.find ({ "name" : /search/i } )
?Для мангуста в Node.js
источник
Вы можете использовать новую функцию 2.6 mongodb:
источник
В проекте nodejs и использовании mongoose используйте запрос Like
источник
searchQuery.product_name = '/'+req.query.search.value+'/i';
searchQuery.product_name= {$regex: req.query.search.value, $options: 'i'};
if(req.query.search.value){ searchQuery.product_name = {$regex: req.query.search.value, $options: 'i'}; searchQuery.sale_amount = {$regex: req.query.search.value, $options: 'i'}; searchQuery.sale_person = {$regex: req.query.search.value, $options: 'i'}; searchQuery.department_name = {$regex: req.query.search.value, $options: 'i'}; searchQuery.sale_date = {$regex: req.query.search.value, $options: 'i'}; }
Можете ли вы посмотреть, почему это не работает?$regex: 'value'
сгенерируйте регулярное выражение для вашего значения поиска и$options: 'i'
означает, что регистр не учитывается . Ваш код не работал из - за вы использовали одинаковое значение для различных форм собственности и которые действуют как и условия , которые не должны выполнять с вашей коллекции баз данных.Для PHP Монго Нравится.
У меня было несколько проблем с PHP как Монго. я обнаружил, что объединение параметров регулярных выражений помогает в некоторых ситуациях, когда поле поиска PHP mongo начинается с . Я решил опубликовать здесь, чтобы способствовать более популярной теме
например
источник
Использование литералов шаблона с переменными также работает:
{"firstname": {$regex : `^${req.body.firstname}.*` , $options: 'si' }}
источник
С MongoDB Compass вам необходимо использовать синтаксис строгого режима, например:
(В MongoDB Compass важно использовать
"
вместо'
)источник
Вы можете использовать оператор where для построения любого JS-скрипта:
Ссылка: http://docs.mongodb.org/manual/reference/operator/where/
источник
$where
очень неэффективно. Сделайте полное сканирование коллекции :(В SQL запрос « like » выглядит так:
В консоли MongoDB это выглядит так:
В дополнение
pretty()
метод будет во всех местах, где производят форматированную структуру JSON, которая является более читаемой.источник
Regex - это дорогой процесс.
Другой способ - создать индекс текста, а затем выполнить поиск по нему
$search
.Создайте текстовый указатель полей, которые вы хотите сделать доступным для поиска:
Поиск строки в текстовом индексе:
источник
В Go и MGO драйвер:
где результат - экземпляр структуры искомого типа
источник
bson:RegEx{Pattern:"m", Options:"i"}
вместо этогоИспользуйте совпадения регулярных выражений, как показано ниже. «I» показывает нечувствительность к регистру.
источник
Как запрос будет как показано ниже
для Scala ReactiveMongo API,
источник
Кажется, что есть причины использовать как
/regex_pattern/
шаблон javascript , так и{'$regex': 'regex_pattern'}
шаблон mongo . Смотрите: Ограничения синтаксиса MongoBD RegExЭто не полный учебник по RegEx, но я был вдохновлен на выполнение этих тестов после того, как увидел неоднозначный пост с высоким рейтингом выше .
источник
Если вы используете Spring-Data Mongodb, вы можете сделать это следующим образом:
источник
Поскольку оболочка Mongo поддерживает регулярные выражения, это вполне возможно.
Если мы хотим, чтобы в запросе не учитывался регистр, мы можем использовать опцию «i», как показано ниже:
источник
Если вы хотите поиск «Мне нравится» в Монго, используйте $ regex, используя этот запрос:
db.product.find({name:{$regex:/m/i}})
для более подробной информации вы также можете прочитать документацию. https://docs.mongodb.com/manual/reference/operator/query/regex/
источник
Используйте поиск по подстроке агрегации (с индексом !!!):
источник
{ "_id" : ObjectId("5aba5ad988385120a01b1ac2"), "fieldExists" : 4 }
Струнный дипакпармар, дипак, пармар
и дипакпармар
и дипакпармар, дипак
анс дипакпармар, пармар
источник
Я нашел бесплатный инструмент для перевода запросов MYSQL в MongoDB. http://www.querymongo.com/ Я проверил несколько запросов. как я вижу, почти все они верны. В соответствии с этим, ответ
источник
MongoRegex устарела.
Используйте MongoDB \ BSON \ Regex
источник
Когда мы ищем строковые шаблоны, всегда лучше использовать вышеуказанный шаблон, когда мы не уверены в регистре. Надеюсь, это поможет!!!
источник