2011-04-10 4 views
6

J'essaie de faire une requête $ ne dans mongodb en utilisant une regex, mais cela ne semble pas fonctionner. l'opérateur $ ne (pas égal) fonctionne bien quand je n'utilise pas une regex cependant. Ce qui précède fonctionne très bien, le jeu de résultats ne contient aucun document ayant cette valeur pour ce champ.

mais j'ai besoin qu'il soit insensible à la casse. donc je l'ai fait

q.put(field, ["\$ne": Pattern.compile(value, Pattern.CASE_INSENSITIVE)]) 

mais cela ne fonctionne pas ..

donc je pensais, me laisser aller à la ligne de commande et voir si je peux le faire manuellement. donc je l'ai fait:

db.Order.find({"bill.recipient.name": {$ne: /diep/i}},{"bill.recipient.name":1}) 

et cela ne fonctionne toujours pas!

des idées?

Répondre

2

Vous pouvez construire votre requête ainsi également

BasicDBObject query = new BasicDBObject(); 
    query.append(fieldname,new BasicDBObject("$ne", value)); 
Questions connexes