2011-04-10 61 views
6

我正在嘗試在使用正則表達式時在MongoDB中執行$ ne查詢,但它似乎不起作用。當我不使用正則表達式時,$ ne(不等於)運算符正常工作。

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

上述工作正常,結果集不包含任何具有該字段的值的文檔。

但我需要它是不區分大小寫的。所以我這樣做

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

但這並不工作..

,所以我想,讓我去命令行,看看我可以做手工。所以我這樣做:

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

它仍然無法正常工作!

有什麼想法?

回答

2

您可以構建您的查詢這種方式也

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