2011-04-10 19 views
6

Estoy tratando de hacer una consulta $ ne en mongodb mientras uso una expresión regular, pero parece que no funciona. el operador $ ne (no igual) funciona bien cuando no uso una expresión regular.

BasicDBObject q = new BasicDBObject() 
q.put(field, ["\$ne": value]) 

Lo anterior funciona bien, el conjunto de resultados no contiene ningún documento que tenga ese valor para ese campo.

pero necesito que sea insensible a las mayúsculas y minúsculas. Así que hice este

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

pero esto no funciona ..

así que pensé, quiero ir a la línea de comandos y ver si puedo hacerlo de forma manual. así que hice esto:

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

y todavía no funciona!

¿Alguna idea?

Respuesta

2

Usted puede construir su consulta de esta manera también

BasicDBObject query = new BasicDBObject(); 
    query.append(fieldname,new BasicDBObject("$ne", value)); 
Cuestiones relacionadas