【问题标题】:how to query mongodb using the $ne operator?如何使用 $ne 运算符查询 mongodb?
【发布时间】:2011-04-10 15:02:31
【问题描述】:

我正在尝试在使用正则表达式时在 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})

它仍然不起作用!

有什么想法吗?

【问题讨论】:

    标签: java mongodb


    【解决方案1】:

    【讨论】:

    • 是的 - “查找字段不等于此正则表达式的对象”与“查找字段不匹配此正则表达式的对象”不同。
    • 啊,你的权利.. 我完全错过了 $not 运营商。多么微妙的区别。谢谢大家!
    【解决方案2】:

    您也可以通过这种方式构建查询

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-24
      • 2015-05-25
      • 2017-07-08
      • 2011-09-10
      • 2012-05-21
      • 2020-11-05
      • 1970-01-01
      • 2015-01-15
      相关资源
      最近更新 更多