[ACCEPTED]-MongoDB and Java driver: "ignore case" in query-case-insensitive
When I had the exact problem, I wasn't able 5 to query by ignoring case. I ended up copy 4 the value that I wanted to search normalizing 3 it. In this case, you can create a new property 2 and convert it to lower case and have an 1 index on that.
EDIT:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
I wonder if that works?
In case if you are using Spring-java below 2 mentioned is the way you can make it search 1 in case-insensitive manner.
public List<Discussion> searchQuestionByText(String qText){
Query query = new Query();
query.addCriteria(Criteria.where("discussionName").regex(qText,"i"));
return mongoTemplate.find(query, Discussion.class);
}
I was also trying to get the best use of 9 the implementation "case insensitive". If 8 you're using the MongoDB Java driver 3.0 or later, you should use 7 this following code, with the $option parameter 6 ! It's really easy to use:
Document basicQuery = new Document();
basicQuery.append("key", new Document("$regex","value").append("$options","i"));
The fields "key" and 5 "value" need to be changed with 4 your own data.
(I also advise you to search 3 with $regex parameter in order to retrieve information 2 via partial matching in the case you would 1 have more and more records in the database).
db.iolog.find({$where:"this.firstname.toLowerCase()==\"telMan\".toLowerCase()"});
DBObject ref = new BasicDBObject();
ref.append("firstname", new BasicDBObject("$where","this.firstname.toLowerCase()=="+firstname+".toLowerCase()"));
0
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.