mongo聚合查询遇到的一个问题
当前对mongo数据库的一张表做一些聚合查询的操作,考虑到数据量太大,从数据库查寻出来结果还是需要插入到数据库,故决定,将查询结果插入到一个临时的集合中,使用mongo的$out操作。根据业务需求,需要执行三次这样的聚合查询,测试发现$out输出到新的集合是,执行替换操作,而不是append操作,以下是官网解释:
The $out operation creates a new collection in the current database if one does not already exist.
If the collection specified by the $out operation already exists, then upon completion of the aggregation, the $out stage atomically replaces the existing collection with the new results collection. The $out operation does not change any indexes that existed on the previous collection.
现在我依然有这样的需求,将多次聚合的结果放在一张表中,该怎么做?
滿天的星座2017-05-02 09:20:44
2.6부터는 Aggregation의 반환 값이 커서입니다. 커서이기 때문에 작동하기 전에 클라이언트의 메모리에 전체 결과 집합을 캐시할 필요가 없습니다. 간단한 아이디어는 커서를 탐색하여 대상 컬렉션에 하나씩 삽입하는 것입니다. 예를 들어 셸에서는 다음과 같습니다.
으아아아