我与 mongodb 合作,我想一个可能的策略来将数据保存在不同的集合中,例如 2 个集合。但是,就像事务系统一样,我想确保数据存在于 collection1 和 collection2 中,或者什么也没有。
实际上,我希望在执行某些操作时跟踪在我的应用程序中执行的操作。因此,例如,当我的应用程序保存数据时,我还想保存它已执行插入操作,修改数据时,我想跟踪修改操作等。
这些操作数据可以保存为单个集合的嵌入文档。例如,如果我尝试将数据保存到collection1中,那么我可以将“插入操作数据”保存在与嵌入文档相同的 collection1 中。如果我尝试将数据修改到collection2中,那么我可以将“修改操作数据”保存在与嵌入文档相同的 collection2 中,依此类推......因此,当我想检索“操作嵌入文档数据”时,我必须查询 collection1、collection2、collection3 等. 我认为那是昂贵的。进一步的collection1,collection2,collection3已经被应用程序强调了,所以我不想再强调了。
或者,我可以将“操作数据”保存在单独的集合中,例如“oper_coll”集合名称。所以我只能查询“oper_coll”来检索“操作数据”,但这意味着当我在 collection1 中保存数据时,我必须将“操作数据”保存在“oper_coll”中以跟踪当前操作。我希望数据正确保存在 collection1 中并在 oper_coll 中进行操作。如果出现问题,它什么也不做,数据不会出现在任何一个集合( collection1 和 oper_coll )中。所以我需要一个应用程序级别的事务系统,因为我知道 mongodb 不支持事务。
所以我想在应用程序级别实现类似的东西,因为我需要将 data1 保存到 collection1 中,如果没问题,它将 data2 保存到 collection2 中。如果出现问题,则全部回滚。
你有什么想法吗?