这是我现在使用的代码,如何添加“忽略大小写”属性?MongoDB和Java驱动程序:查询中的“忽略大小写”
DBObject query = new BasicDBObject("prop", value);
感谢
这是我现在使用的代码,如何添加“忽略大小写”属性?MongoDB和Java驱动程序:查询中的“忽略大小写”
DBObject query = new BasicDBObject("prop", value);
感谢
当我有确切的问题,我无法忽视的情况下进行查询。我最终复制了我想要搜索的值,使其正常化。在这种情况下,您可以创建一个新的属性并将其转换为小写字母并且具有一个索引。
编辑:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
不知是否可行?
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 = new HashMap<String, Object>();
mapValue.put("$options", "i");
mapValue.put("$regex", "smth");
searchMap.put("name", mapValue);
collection.find(new 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);
}
我也试图最好地使用“不区分大小写”的实现。 如果您使用的是MongoDB Java driver 3.0或更高版本,则应使用以下代码,并使用$ option参数!它非常容易使用:
Document basicQuery = new Document();
basicQuery.append("key", new Document("$regex","value").append("$options","i"));
“key”和“value”字段需要用您自己的数据进行更改。 (我还建议你使用$ regex参数进行搜索,以便通过部分匹配检索信息,如果数据库中有更多记录)。
这是1.4版本的方式。也许事情现在已经改变了。 – 2010-11-01 13:41:21
使用控制台,我意识到输入db.collection.find({“prop”:/ value/i})会使我的查询大小写不敏感。必须有一种方法来使用Java驱动程序启用“我”属性,即使通过正则表达式查询它并不重要。键入DBObject query = new BasicDBObject(“prop”,“/”+ value +“/ i”)不起作用。 – Mark 2010-11-01 13:44:42
试试看。我希望它能找到你想要的。 – 2010-11-01 13:52:38