MongoDB和Java驱动程序:“;“忽略案例”;质疑
这就是我现在使用的代码,如何添加“ignorecase”属性MongoDB和Java驱动程序:“;“忽略案例”;质疑,java,mongodb,case-insensitive,Java,Mongodb,Case Insensitive,这就是我现在使用的代码,如何添加“ignorecase”属性 DBObject query = new BasicDBObject("prop", value); 谢谢当我遇到确切的问题时,我无法通过忽略case进行查询。我最终复制了我想要搜索的值,并将其规范化。在这种情况下,您可以创建一个新属性,并将其转换为小写,并在其上建立索引 编辑: DBObject ref = new BasicDBObject(); ref.put("myfield", Pattern.compile(".*myV
DBObject query = new BasicDBObject("prop", value);
谢谢当我遇到确切的问题时,我无法通过忽略case进行查询。我最终复制了我想要搜索的值,并将其规范化。在这种情况下,您可以创建一个新属性,并将其转换为小写,并在其上建立索引 编辑:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
我想知道这是否有效?mapValue=newhashmap();
db.iolog.find({$where:"this.firstname.toLowerCase()==\"telMan\".toLowerCase()"});
DBObject ref = new BasicDBObject();
ref.append("firstname", new BasicDBObject("$where","this.firstname.toLowerCase()=="+firstname+".toLowerCase()"));
mapValue.put(“$options”,“i”);
mapValue.put(“$regex”,“smth”);
searchMap.put(“名称”,mapValue);
collection.find(新的BasicDBObject(searchMap));
如果您使用的是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);
}
public List searchQuestionByText(字符串qText){
查询=新查询();
query.addCriteria(Criteria.where(“discussionName”).regex(qText,“i”));
返回mongoTemplate.find(查询、讨论、类);
}
我还试图最好地利用“不区分大小写”的实现。
如果使用的是或更高版本,则应使用以下代码,并使用$选项参数!它非常容易使用:
Document basicQuery = new Document();
basicQuery.append("key", new Document("$regex","value").append("$options","i"));
“键”和“值”字段需要使用您自己的数据进行更改
(我还建议您使用$regex参数进行搜索,以便通过部分匹配检索信息,以防数据库中的记录越来越多)。顺便说一下,这是1.4版。也许现在情况已经改变了。在玩控制台时,我意识到键入db.collection.find({“prop”:/value/I})会使我的查询不区分大小写。必须有一种方法可以使用Java驱动程序启用“i”属性,即使通过正则表达式查询也无所谓。但是,键入DBObject query=newBasicDBObject(“prop”,“/”+value+“/i”)不起作用。请尝试一下。我希望这就是你要找的。
Document basicQuery = new Document();
basicQuery.append("key", new Document("$regex","value").append("$options","i"));