未使用MongoDB Java驱动程序3.8创建集合

时间:2019-01-15 16:13:24

标签: java mongodb aggregation-framework mongodb-java

我正在运行将文档进行分组的聚合管道,先对其进行投影,然后再使用$out操作将其推送到另一个集合中。

collectionObservations.aggregate(Arrays.asList(
                new Document("$group",
                        new Document("_id",
                                new Document("producerId", "$producer.producerId")
                                        .append("name", "$producer.name")
                                        .append("fundings", "$producer.fundings")
                                        .append("datasetId", "$dataset.datasetId")
                                        .append("title", "$dataset.metadata.title")
                                        .append("portalSearchCriteria", "$dataset.metadata.portalSearchCriteria")
                                        .append("featureOfInterest", "$observation.featureOfInterest")
                                        .append("observedProperty", "$observation.observedProperty")
                        ).append("documentId",
                                new Document("$push", "$documentId"))),
                new Document("$project",
                        new Document("documentId", 1)
                                .append("producer.producerId", "$_id.producerId")
                                .append("producer.name", "$_id.name")
                                .append("producer.fundings", "$_id.fundings")
                                .append("dataset.datasetId", "$_id.datasetId")
                                .append("dataset.metadata.title", "$_id.title")
                                .append("dataset.metadata.portalSearchCriteria", "$_id.portalSearchCriteria")
                                .append("observation.featureOfInterest", "$_id.featureOfInterest")
                                .append("observation.observedProperty", "$_id.observedProperty")
                                .append("_id", 0)),
                out(outputCollectionName)
        )).allowDiskUse(Boolean.TRUE);

outputCollection既不会创建也不会填充(如果之前创建过手动操作),直到我.forEach(printBlock)打印the doc中说明的聚合结果为止。 任何人都可以向我解释发生了什么以及是否会发生这种情况?

0 个答案:

没有答案