Как запросить MongoDB с «лайк»? - PullRequest
1258 голосов
/ 22 июля 2010

Я хочу запросить что-то с запросом SQL like:

SELECT * FROM users  WHERE name LIKE '%m%'

Как мне добиться того же в MongoDB? Я не могу найти оператора для like в документации .

Ответы [ 33 ]

0 голосов
/ 07 июля 2018

Вы также можете использовать подстановочный фильтр следующим образом:

{"query": { "wildcard": {"lookup_field":"search_string*"}}}

обязательно используйте *.

0 голосов
/ 15 октября 2017
>> db.car.distinct('name')
[ "honda", "tat", "tata", "tata3" ]

>> db.car.find({"name":/. *ta.* /})
0 голосов
/ 16 февраля 2017

Если вы используете PHP, вы можете использовать MongoDB_DataObject обертку, как показано ниже:

$model = new MongoDB_DataObject();

$model->query("select * from users where name like '%m%'");

while($model->fetch()) {
    var_dump($model);
}

OR

$model = new MongoDB_DataObject('users);

$model->whereAdd("name like '%m%'");

$model->find();

while($model->fetch()) {
    var_dump($model);
}
...