База данных MongoDB, запрос с LIKE - PullRequest
1 голос
/ 23 августа 2011

У меня есть MongoDB, я могу запросить базу данных с помощью 'Country', которая работает нормально.Но теперь я хочу также искать в поле «заголовок» со свободным текстом.Как и в SQL, название WHERE LIKE '% title%'

BasicDBObject query = new BasicDBObject();
query.put("country", country);
query.put("title", %title%);
DBCursor cursor = collection.find(query);

Как бы это сделать с MongoDB?

Ответы [ 3 ]

4 голосов
/ 23 августа 2011

Вы можете использовать регулярные выражения В вашем случае /title/i должно работать (так как MySQL-подобный запрос обычно нечувствителен к регистру, / i обозначает совпадение без учета регистра)

0 голосов
/ 27 декабря 2013

если вы получили ключевое слово в переменной ...

Model.find( { FIELD_NAME : { $regex: KEYWORD, $options: 'i' }});

и если вы получили ключевое слово в виде строки ...

Model.find( { FIELD_NAME : /string/i });

должно работать как SELECT * FROMМодель WHERE FIELD_NAME LIST = KEYWORD.

'i' включает нечувствительность к регистру, так что вы можете искать слово без исключения регистра.

0 голосов
/ 01 июня 2012

Используйте этот шаблон как регулярное выражение Java

Pattern title = Pattern.compile("title");
BasicDBObject dbc=new BasicDBObject();
dbc.put("title", title );
DBCursor cursor = collection.find(query);

Это будет работать, .. попробуйте

...