【问题标题】:Is there a way to write negation query ( ex nand , nor , not ) in morphia有没有办法在 morphia 中编写否定查询( ex nand , nor , not )
【发布时间】:2019-08-22 06:36:23
【问题描述】:

我想编写一个否定/否定查询,我可以过滤掉那些大小为零的集合,但我无法为此编写一个morphia 查询。

在 MongoDB 中:

db.getCollection('xyz').find({'ArrayField.0': {$exists: true}})

以上查询有效。

我想操作这个查询并形成一个可以在数组/集合上运行的 morphia 查询

query.and(
          query.criteria("ArrayField.0").exists(),
          query.criteria("ArrayField").notequals(null)
)

【问题讨论】:

标签: java mongodb morphia


【解决方案1】:

你离得太近了!

query.and(
          query.criteria("ArrayField.0").exists(),
          query.criteria("ArrayField").notEqual(null)
)

更一般地说,还有另一种适用范围更广的方法:

query.and(
          query.criteria("ArrayField.0").exists(),
          query.criteria("ArrayField").not().Equal(null)
)

这种方法应该适用于任何操作。

我应该指出 mongo 查询语言中的 $equal 运算符是 equal() 而不是 equals()equals() 是在 Object 上定义的 Java 定义的相等方法。可以肯定的是,这个名字令人困惑,而且由于自动完成功能,我自己也偶然发现了这个名字。但是更改该方法名称为时已晚,老实说,我还没有想到更好的名称。

【讨论】:

    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 2021-04-12
    • 2020-10-24
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    相关资源
    最近更新 更多