根据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仪表板上找到合适的票据
所以,这还没有修好,或者这不会修复,我错了?
答案 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"...)