【发布时间】:2018-01-24 12:56:26
【问题描述】:
我正在使用此聚合查询处理所有文档,但这里的问题是光标有限,他返回大约 500 个结果。我试过limit(0)但它不起作用! ,我也尝试使用limit(10000)或limit(20000),但它不起作用我总是得到500个结果
AggregateIterable<Document> resultMongo = collection.aggregate(Arrays.asList(
Aggregates.match(and(filters)),
Aggregates.group(and(eq(CoverageWarningFieldEnum.DT_EXTRACT.getLabel(), "$" + CoverageWarningFieldEnum.DT_EXTRACT.getLabel())
, eq(CoverageWarningFieldEnum.ID_SUP_NUMBER.getLabel(), "$" + CoverageWarningFieldEnum.ID_SUP_NUMBER.getLabel())
, eq(CoverageWarningFieldEnum.CODE_SUPPLIER_DLPA_SITE.getLabel(), "$" + CoverageWarningFieldEnum.CODE_SUPPLIER_DLPA_SITE.getLabel())
, eq(CoverageWarningFieldEnum.SUP_NAME.getLabel(), "$" + CoverageWarningFieldEnum.SUP_NAME.getLabel())
, eq(CoverageWarningFieldEnum.MLF07_GRPFOU.getLabel(), "$" + CoverageWarningFieldEnum.MLF07_GRPFOU.getLabel()))
, sum("sum_w_ord_unit_ord_min_coverage", "$" + CoverageWarningFieldEnum.W_ORD_UNIT_ORD_MIN_COVERAGE.getLabel())
, sum("sum_w_excess_delivery", "$*" + CoverageWarningFieldEnum.W_EXCESS_DELIVERY.getLabel())
, sum("sum_w_inventory", "$" + CoverageWarningFieldEnum.W_INVENTORY.getLabel())
, sum("sum_w_service_blocking", "$" + CoverageWarningFieldEnum.W_SERVICE_BLOCKING_2.getLabel())
, sum("sum_w_service_blocking_4", "$w" + CoverageWarningFieldEnum.W_SERVICE_BLOCKING_4.getLabel())
, sum("sum_w_coverage_change", "$" + CoverageWarningFieldEnum.W_COVERAGE_CHANGE.getLabel())
, sum("sum_w_pa_supervision", "$" + CoverageWarningFieldEnum.W_PA_SUPERVISION.getLabel())
, sum("sum_val_pn_stock_total_euro", "$" + CoverageWarningFieldEnum.VAL_PN_STOCK_TOTAL_EURO.getLabel())
, sum("sum_val_pn_average_sale_12month_euro", "$" + CoverageWarningFieldEnum.VAL_PN_AVERAGE_SALE_12MONTH_EURO.getLabel())
, sum("sum_score", "$" + CoverageWarningFieldEnum.SCORE.getLabel())),
Aggregates.sort(Sorts.orderBy(Sorts.descending(CoverageWarningFieldEnum.SCORE.getLabel())))
));
【问题讨论】:
-
我看不出问题出在哪里。当您附加计数阶段 (
Aggregates.count("totalCount");) 以查看聚合返回的文档数时会发生什么?
标签: java mongodb mongodb-query aggregation-framework