Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb中的用户协议模型_Mongodb - Fatal编程技术网

mongodb中的用户协议模型

mongodb中的用户协议模型,mongodb,Mongodb,我有用户需要接受的用户协议。协议会不时更改,因此用户需要再次接受 我想将其存储在mongo中,以便检查用户是否同意最新条款,并显示条款尽可能有效 因此,最简单的实现是有一个包含协议的文档,协议创建的时间,以及一组已经同意的用户 然后我可以请求按日期排序的最后一个文档,并向它投影一个新属性,告诉它用户是否在数组中 当用户同意这些条款时,将用户添加到该数组也是非常简单的 这种方法的问题是阵列中的用户数量不断增加 我见过“写时展开”以解决阵列大小挑战的策略,但我不完全理解如何在一次通话中查询最新协议和

我有用户需要接受的用户协议。协议会不时更改,因此用户需要再次接受

我想将其存储在mongo中,以便检查用户是否同意最新条款,并显示条款尽可能有效

因此,最简单的实现是有一个包含协议的文档,协议创建的时间,以及一组已经同意的用户

然后我可以请求按日期排序的最后一个文档,并向它投影一个新属性,告诉它用户是否在数组中

当用户同意这些条款时,将用户添加到该数组也是非常简单的

这种方法的问题是阵列中的用户数量不断增加

我见过“写时展开”以解决阵列大小挑战的策略,但我不完全理解如何在一次通话中查询最新协议和当前用户是否同意的信息


有什么建议吗?

您可以将latestAgreementAccepted id存储在用户文档中,而不是在协议文档中维护用户数组。取舍是更新每个用户的LateStagreementAcceptedID字段。是的,我一直在考虑这个问题。只有一个问题:我没有用户文档。。。当然,我可以创建一个,但这将导致两个查询来检查用户是否同意:一个用于最新协议,另一个用于用户检查。如果可能的话,我宁愿在一个问题中回答这个问题。。