MongoDB跟踪哪个用户需求变化

时间:2019-05-28 17:49:41

标签: mongodb mongodb-oplog

我们正在运行具有多个系统的微服务体系结构,这些系统可以访问MongoDB中的共享集合(是的,可疑的设计,但我们正在过渡之中)

我们试图找到一种方法来跟踪操作日志中的更改是由哪个“用户” /服务(每个微服务使用不同的凭据)实际进行了更改。如果我们在数据库中发现任何无效的更改,这将使查找哪个系统正在调试变得非常容易。

有什么想法吗?

到目前为止,我唯一想出的方法总是必须更改客户端代码,这是我想避免的。

1 个答案:

答案 0 :(得分:0)

如果您可以维护一列editors,以便每个操作都具有一个{ $addToSet: { editors: { by: userId, at: new Date() } } },则相应的oplog条目将具有此信息,您可以与访问控制列表进行交叉核对。

注意:您可能必须将插入内容更改为upserts,或者考虑另一种情况:.insert({ ..., editors: [{ by: userId, at: new Date() }] })