我正在通过Mongo DB C#驱动程序使用Mongo DB。
我有一个包含许多文档的集合,其中每个文档都有一个ID和一个版本。这些文件很重。
在我的场景中,我需要克隆多个文档,并且每个文档都需要增加版本并执行另一个小的更改。
直接的解决方案是将每个文档加载到内存中,在C#代码中对其进行更改,然后插入新文档。
问题在于性能不佳,因为每个文档都已加载,反序列化,序列化和保存。 有没有在数据库侧执行更优化的方法而不加载到内存中?
我读到有关“ out”聚合阶段的信息,该阶段可以将聚合的文档输出到现有集合中。可以用于此事吗?
编辑:另一个可能的选项是存储JavaScript,据我所知通常不建议使用JavaScript,但这可能是一个合适的方案。这是个好方法吗?