8
votes

Pilote MongoDb et Java: "Ignorer l'affaire" dans la requête

C'est le code que j'utilise maintenant, comment puis-je ajouter l'attribut "Ignorer case"? XXX

Merci


0 commentaires

5 Réponses :


17
votes

Lorsque j'ai eu le problème exact, je n'ai pas pu interroger en ignorant l'affaire. J'ai fini par copier la valeur que je voulais rechercher la normalisation. Dans ce cas, vous pouvez créer une nouvelle propriété et la convertir en minuscules et avoir un index à ce sujet.

EDIT: xxx

Je me demande si cela fonctionne?


3 commentaires

C'était la version 1.4 au fait. Peut-être que les choses ont changé maintenant.


Jouer avec la console, j'ai réalisé que taper db.collection.find ({"Prop": / valeur / i}) rend mon cas de requête insensible. Il doit y avoir un moyen d'activer l'attribut "I" à l'aide du pilote Java, même si par une requête de regex, cela n'a pas d'importance. Typing dbobject requier = nouveau basicdbObject ("Prop", "/" + valeur + "/ i") ne fonctionne pas cependant.


Donner cela un essai. J'espère que c'est ce que vous recherchez.



0
votes
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 commentaires

-1
votes
 mapValue = new HashMap<String, Object>();
 mapValue.put("$options", "i");
 mapValue.put("$regex", "smth");
 searchMap.put("name", mapValue);
 collection.find(new BasicDBObject(searchMap));

0 commentaires

9
votes

Si vous utilisez Spring-Java ci-dessous mentionné, c'est la façon dont vous pouvez la faire chercher en cas de manière insensible.

public List<Discussion> searchQuestionByText(String qText){
        Query query = new Query();
        query.addCriteria(Criteria.where("discussionName").regex(qText,"i"));
        return mongoTemplate.find(query, Discussion.class);     
    }


0 commentaires

5
votes

J'essayais également d'obtenir le meilleur usage de la mise en œuvre "Case insensible". Si vous utilisez le pilote Java de MongoDB 3.0 ou plus tard, vous devez utiliser ce suivant Code, avec l'option $ paramètre! C'est vraiment facile à utiliser: xxx

les champs "clé" et "la valeur" doivent être modifiés avec vos propres données.

(Je vous conseille également de chercher avec $ regex paramètre afin de récupérer des informations via une correspondance partielle dans le cas où vous auriez de plus en plus d'enregistrements dans la base de données).


0 commentaires