#php #arrays #json #mongodb #mongodb-query
#php #массивы #json #mongodb #mongodb-запрос
Вопрос:
Я использую этот $nin
запрос для $regex
поиска, но он не работает:
first_name: { $nin: [ "/^rahul/i", "/^Bhosale/i" ] }
При выполнении этого запроса я не смог найти результат без «rahul» или «bhosale», но когда я нажал на этот запрос, как показано ниже
first_name: { $nin: [ /^rahul/i, /^Bhosale/i ] }
это работает нормально.
когда я передаю массив find()
, я думаю, что он берет обратную косую черту в двойные кавычки, поэтому он не смог найти результат.
Как я могу решить эту проблему?
Комментарии:
1. Не могли бы вы немного прояснить свой вопрос, вы имеете в виду, что у вас есть входной массив типа
[ "/^rahul/i", "/^Bhosale/i" ]
или[ "rahul", "Bhosale" ]
который вам нужно передатьfind()
функции с$nin
помощью и вы хотите преобразовать этот массив в объект запроса типа{ $nin: [ /^rahul/i, /^Bhosale/i ] }
?2. Я предполагаю, что вы пытаетесь передать массив строки регулярных выражений в запрос, или вы имеете в виду, что когда вы передаете массив в запрос, он преобразуется в строку из выражения регулярных выражений? В основном ему нужен массив регулярных выражений, иначе, если есть строка, он попытается найти точные совпадения. Я не уверен насчет PHP, но должен быть способ создать массив регулярных выражений, а не строки регулярных выражений.
3. да, chridam, я хочу использовать функцию поиска в массиве, но внутренне ее массив будет кодировать массив, а закодированный массив будет принимать обратную косую черту [ «/ ^ rahul / i», «/ ^ Bhosale / i» ] этот запрос не вернет никакого результата
4. да, рахул Кумар … но как не может быть в состоянии в массиве регулярных выражений в запросе mongo db..