регулярное выражение поиска в базе данных mongodb - PullRequest
0 голосов
/ 16 января 2012

Каждый документ состоит из «имени, города и филиала», тогда они также содержат «ключевые слова», которые представляют собой комбинированную версию «имени, города и филиала».

Теперь мне нужно регулярное выражение, вот что я получил:

    public function searchLocation($keyword){
        $result = $this->locations->find(array('keywords' => new MongoRegex('/^' . strtolower($keyword) . '/')));

        if($result){
            return $result;
        }

        return false;
    }

Проблема в том, что когда пользовательский ввод был "grandcaffee london", он не будет искать КАЖДОЕ слово или когда пользователь вводит: "Cinema New York".

Спасибо за чтение.

1 Ответ

1 голос
/ 16 января 2012

Вы можете сделать это (соответствует "grandcaffee" ИЛИ "Лондон")

db.locations.find({keywords: {$in: [/grandcaffee/, /london/]}});

или это (соответствует документам с ОБА "grandcaffee" и "Лондон")

db.locations.find({keywords: {$all: [/grandcaffee/, /london/]}});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...