我有一个MongoDB,我可以使用'Country'查询数据库,该工作正常。但我现在也想用自由文本搜索字段'title'。与在SQL中一样,WHERE标题LIKE'%title%'
BasicDBObject query = new BasicDBObject();
query.put("country", country);
query.put("title", %title%);
DBCursor cursor = collection.find(query);
我如何使用MongoDB执行此操作?
答案 0 :(得分:4)
您可以使用regular expressions
在你的情况下,/title/i
应该工作(因为像查询这样的MySQL通常不区分大小写,/ i表示不区分大小写的匹配)
答案 1 :(得分:0)
使用它 这种模式是java正则表达式
Pattern title = Pattern.compile("title");
BasicDBObject dbc=new BasicDBObject();
dbc.put("title", title );
DBCursor cursor = collection.find(query);
这样可行,试试吧
答案 2 :(得分:0)
如果你在变量中得到了关键字......
Model.find( { FIELD_NAME : { $regex: KEYWORD, $options: 'i' }});
如果您将关键字作为字符串...
Model.find( { FIELD_NAME : /string/i });
应该像SELECT * FROM Model WHERE FIELD_NAME LIST = KEYWORD一样工作。
'我'切换不区分大小写,以便您可以搜索单词而不会出现大小写异常。