Как запросить Mongodb с помощью оператора $ ne? - PullRequest
6 голосов
/ 10 апреля 2011

Я пытаюсь выполнить запрос $ ne в mongodb при использовании регулярного выражения, но, похоже, он не работает.оператор $ 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 ]

9 голосов
/ 10 апреля 2011

Попробуйте использовать $, а не вместо $ ne .

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-Metaoperator%3A%24not

2 голосов
/ 13 января 2017

Вы можете построить свой запрос таким же образом

BasicDBObject query = new BasicDBObject();
    query.append(fieldname,new BasicDBObject("$ne", value));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...