Spring Data MongoDB比较两个文档字段

时间:2014-09-29 14:07:45

标签: spring-data-mongodb

我想根据以下标准查询文档:foo.a!= foo.b

示例:

db.foo.insert({a: "1", b: "1"});
db.foo.insert({a: "2", b: "2"});
db.foo.insert({a: "1", b: "2"});

关注mongo查询:

db.foo.aggregate(
  [
    {
      $project: {
                  a: 1,
                  b: 1,
                  aNeB: {$ne:["$a","$b"]}
                }
    },
    {
      $match : { aNeB: true }
    }
  ]
);

告诉我:{a:" 1",b:" 2"}

问题在于我无法创建一个NeB投影字段:

代码模板:

Aggregation agg = newAggregation(
                project("a", "b")
                .andExpression("$ne:['$a','$b']").as("aNeB"),
                match(Criteria.where("aNeB").is(true)),
                group().count().as("count")
        );

如何使用Spring Data MongoDB执行此操作?

1 个答案:

答案 0 :(得分:0)

由于方法andExpression需要spEL作为输入,因此您需要将其修改为:

.andExpression("a!=b").as("aNeB") ..