2014-09-29 65 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") ..