谁能解释为什么当我使用 "$out" 进行聚合管道时,为什么在 Java 中当我只写这个时不将结果写入新集合:
Document match = new Document("$match", new Document("top_speed",new Document("$gte",350)));
Document out=new Document("$out", "new_collection");
coll.aggregate(Arrays.asList(
match,out
)
);
当我保存聚合结果并对其进行迭代时,将创建新集合,并且匹配的结果在里面(在这种情况下,Java显然有错误):
AggregateIterable<Document> resultAgg=
coll.aggregate(Arrays.asList(
match,out
)
);
for (Document doc : resultAgg){
System.out.println("The result of aggregation match:-"+ doc.toJson());
}
我不明白为什么。
你可以调用 toCollection() 方法而不是迭代。
Document match = new Document("$match", new Document("top_speed", new Document("$gte", 350)));
Document out = new Document("$out", "new_collection");
coll.aggregate(Arrays.asList(match, out)).toCollection();