Este es el código que estoy usando ahora, ¿cómo agrego el atributo "ignorar caso"?Controlador MongoDB y Java: "ignorar caso" en la consulta
DBObject query = new BasicDBObject("prop", value);
Gracias
Este es el código que estoy usando ahora, ¿cómo agrego el atributo "ignorar caso"?Controlador MongoDB y Java: "ignorar caso" en la consulta
DBObject query = new BasicDBObject("prop", value);
Gracias
Cuando tuve el problema exacto, yo no era capaz de consultar al ignorar caso. Terminé copiando el valor que quería buscar para normalizarlo. En este caso, puede crear una nueva propiedad y convertirla a minúsculas y tener un índice sobre eso.
EDIT:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
Me pregunto si eso funciona?
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));
En caso si usted está utilizando Primavera-java mencionado a continuación es la forma en que puede hacer que buscar de manera sensible a las mayúsculas.
public List<Discussion> searchQuestionByText(String qText){
Query query = new Query();
query.addCriteria(Criteria.where("discussionName").regex(qText,"i"));
return mongoTemplate.find(query, Discussion.class);
}
También estaba tratando de obtener el mejor uso de la implementación "insensible a mayúsculas y minúsculas". Si está usando MongoDB Java driver 3.0 o posterior, debe usar este código siguiente, con el parámetro $ option! Es realmente fácil de usar:
Document basicQuery = new Document();
basicQuery.append("key", new Document("$regex","value").append("$options","i"));
Los campos "clave" y "valor" deben modificarse con sus propios datos.
(también te aconsejo que busques con parámetro $ regex para recuperar información mediante la coincidencia parcial en caso de que tengas más y más registros en la base de datos).
Esta fue la versión 1.4 por cierto. Tal vez las cosas han cambiado ahora. –
Al jugar con la consola, me di cuenta de que escribir db.collection.find ({"prop":/value/i}) hace que mi consulta no sea sensible. Debe haber una manera de habilitar el atributo "i" utilizando el controlador de Java, incluso si a través de una consulta Regex no importa. Sin embargo, al escribir DBObject query = new BasicDBObject ("prop", "/" + valor + "/ i") no funciona. – Mark
Pruébalo. Espero que sea lo que estás buscando. –