聚合中的字段投影与下划线ID不同

时间:2017-08-25 10:58:48

标签: java spring mongodb spring-data spring-data-mongodb

根据MongoDB 3.4发行说明,MongoDB现在支持聚合中的字段投影,这与下划线ID不同。 但是,当我使用

Aggregation.project().andExclude("*not_underscore_id_field*");

我看到了错误

Exclusion of field *not_underscore_id_field* not allowed. Projections by the mongodb aggregation framework only support the exclusion of the _id field!

(我在最新的1.10.6.RELEASE版本的spring-data-mongodb上看到了同样的错误)

我没有在spring-mongodb jira仪表板上找到合适的票据

所以,这还没有修好,或者这不会修复,我错了?

1 个答案:

答案 0 :(得分:1)

如我所见,在ProjectionOperation.andExclude(String... fieldNames)内我们有下一个代码:

for (String fieldName : fieldNames) {
    Assert.isTrue(Fields.UNDERSCORE_ID.equals(fieldName),
            String.format(EXCLUSION_ERROR, fieldName, Fields.UNDERSCORE_ID));
}

因此,它允许我们排除 _id字段

作为解决方案,您可以指定要包含的所有字段:

Aggregation.project("fieldNames"...)