2011-08-23 43 views
1

我有一个MongoDB,我可以查询数据库'国家',工作正常。但是我现在也想用自由文本搜索字段'标题'。与在SQL中一样,WHERE标题LIKE'%title%'MongoDB数据库,查询类似

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

我该如何对MongoDB执行此操作?

感谢您的任何帮助!

+0

重复的http://stackoverflow.com/questions/3305561/how-to-query-mongodb-with-like – Xaerxess

+0

我怎么会把这个到我的代码? BasicDBObject query = new BasicDBObject(); query.put(“country”,country); query.put(“title”,/ title/i); ??????????? –

回答

4

您可以使用regular expressions 在你的情况,/title/i应该工作(如MySQL的查询功能通常是不区分大小写的,/ i表示不区分大小写的匹配)

+0

谢谢!我将如何把这个到我的代码? BasicDBObject query = new BasicDBObject(); query.put(“country”,country); query.put(“title”,/ title/i); ??????????? –

0

使用此 这种模式是java的正则表达式

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

这将工作,..尝试它

0

如果你有变量的关键字...

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

,如果你得到了关键字作为只是一个字符串...

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

应该像SELECT * FROM模型,其中FIELD_NAME LIST =关键字。

'我'切换大小写不敏感,以便您可以搜索没有大小写例外的单词。