Spring Data Aggregation在嵌套文档结构中仅采用默认ID

时间:2019-07-05 05:26:25

标签: mongodb mongodb-query spring-data

我正在使用聚合查询从MongoDB中的嵌套文档结构中获取B对象的列表。该查询在mongo shell中运行良好,并返回了C._id,但是当我对spring数据进行同样的操作时,它返回了默认的A._id。 这是具有A集合的文档结构,分别与B数组和C数组嵌套

    {
      _id: 1,
      B : [{
            _id: 1.1,
            C : [{
                  _id: 1.1.10
                  type: "input"
                }]
           }]
     }

此查询返回“ C._id:1.1.10” db.sw_eng.aggregate([{"$unwind":"$B"},{"$unwind":"$B.C"},{"$match":{"B.C.type":"input"}},{$project:{_id:0, Cid:"$B.C._id"}}]);

但是当我使用spring数据做同样的事情时 Aggregation getOutputPort = Aggregation.newAggregation( unwind(B), unwind(C), match(...), match(...), match(...), match(...), project(B.C._id) .andExpression("VALUE").as(B.C.value)
);

预期结果应该是id:1.1.10,但在所有情况下,我都会得到id:1

0 个答案:

没有答案