mongodb将聚合输出写入集合,而不会清除以前的数据

我有一个user集合和一个job集合。 每当插入一个新的工作,我正在运行一个聚合pipe道查询,输出一个文件列表,我需要为我的未来工作。

$out操作符我可以写信给我们说match集合。 现在无论何时插入新作业并且查询再次运行,新的输出都将清除所有以前的match集合的数据。 我不想要,但根据MongoDB中logging的工作。

为了使我的数据持久化,我可以在我的应用程序中调用toArray() ,然后写入一个新的集合。 但据我所知,这不会扩展到1万到1万个文件。 我的问题是,我可以(可能吗?)解决这个特定的问题,而不会给内存带来太多的负担? 任何像bulkInsert的游标? 有点延迟的计算不会伤害太多

这是我的pipe道的结构。

 // ... previous stages const stage7 = { $out: 'match' } .... collection.aggregate( [stage1, stage2, stage3, stage4, stage5, stage6, stage7], (err, result) => { if (err) { console.log('agg failed error ', err) throw new Error('aggregation failed to write in match db', err) } console.log('write to db aggregation done', result) } )