我的 Flask 应用程序目前使用 PostgreSQL 来存储所有身份验证信息(用户、令牌)并与之交互。对于其他逻辑,我需要使用 MongoDB。我喜欢使用一种技术而不是多种技术来降低应用程序的复杂性(例如,仅使用 Redis 而不是 Redis + memcached)。
所以现在我正在考虑仅使用 MongoDB,将其用作身份验证过程的后端。
当前工作流程如下:PostgreSQL 存储两个表:User 和 Token。当我注册用户时,我打开事务,将他的数据(用户名,登录名,密码)存储在 User 表中,然后将激活令牌插入 Token 表,然后发送激活信,然后关闭事务。因此,在代码中存储用户、令牌或以后出现问题,当我尝试发送电子邮件时,事务将被回滚。它可以防止用户创建但没有令牌的情况,因此无法激活帐户。
据我所知,事务不是 MongoDB 的功能。因此,如果我将有两个文档,用户和令牌,如果无法创建第二个,我将无法回滚创建第一个。
我的问题是:
- 您将如何在 MongoDB 上实现所描述的行为?
- 仅将 MongoDB 用于所有内容而不是 PostgreSQL 用于身份验证和 MongoDB 用于文档是个好主意吗?