我有一个包含许多对象的文档,以及在其上运行的几个聚合处理器。 可以说对象文档的名称是Objects。 对于一个处理器,我创建了另一个名为ProcessedObjects的文档,其中每个实例都是一个包含一个字段“processedObjectPtr”的对象,该字段是对象的链接。
我想运行以下基本循环:
for all objects that haven't been processed yet:
1 - process object
2 - add object to processed object list
我不知道在MongoDB中如何做的部分是获取尚未处理的对象列表。从理论上讲,我可以通过向其添加另一个字段来标记对象本身,但是当我将有许多处理器变得难看时,这就是为什么我更喜欢将“已处理对象列表”保存在单独的文档中。
是否有一种优雅的方法来执行此操作,还是必须将处理后的元数据添加到实际对象中? 我正在使用mongoengine,但任何答案都可以。
谢谢!
答案 0 :(得分:0)
我最终在我的对象中添加了'processedFlags'列表,因此每个处理器都可以标记(通过标记)它已经处理过该对象,并且还查询哪些对象没有该标记。