Mar*_*ark 8 java case-insensitive mongodb
这是我现在使用的代码,如何添加"忽略大小写"属性?
DBObject query = new BasicDBObject("prop", value);
Run Code Online (Sandbox Code Playgroud)
谢谢
Ami*_*far 16
当我遇到确切的问题时,我无法通过忽略大小写来查询.我最终复制了我想要搜索的值,将其标准化.在这种情况下,您可以创建一个新属性并将其转换为小写,并在其上有一个索引.
编辑:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
Run Code Online (Sandbox Code Playgroud)
我想知道这是否有效?
如果你正在使用Spring-java,那么你可以用不区分大小写的方式进行搜索.
public List<Discussion> searchQuestionByText(String qText){
Query query = new Query();
query.addCriteria(Criteria.where("discussionName").regex(qText,"i"));
return mongoTemplate.find(query, Discussion.class);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我还试图充分利用“不区分大小写”的实现。如果您使用的是MongoDB Java 驱动程序 3.0或更高版本,则应使用以下代码,并带有 $option参数!它真的很容易使用:
Document basicQuery = new Document();
basicQuery.append("key", new Document("$regex","value").append("$options","i"));
Run Code Online (Sandbox Code Playgroud)
字段“键”和“值”需要使用您自己的数据进行更改。
(我还建议您使用$regex参数进行搜索,以便在数据库中记录越来越多的情况下通过部分匹配检索信息)。
| 归档时间: |
|
| 查看次数: |
14283 次 |
| 最近记录: |