2014-09-29 31 views
0

我想根据以下标准来查询文件:foo.a = foo.b春MongoDB的数据比较两个文档场

例子:

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

继蒙戈查询:

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

给我:{A: “1”,b: “2”}

的问题是,我无法创建aNeB投影字段:

代码模板:

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

我怎样才能做到这一点使用Spring数据的MongoDB?

回答

0

由于andExpression需要一个spEL作为输入方法,你需要将它修改为:

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