gpt4 book ai didi

python - MongoDB 和 Meteor 中隐私设置的理想模式设计

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:33 25 4
gpt4 key购买 nike

我有一组文档,它们周围可以有各种 READ 隐私设置:

  1. 它们可以公开完成(任何注册用户)都可以查看
  2. 只有关注您的人才能看到它们(此“关注者”数组存储在每个用户的文档中)
  3. 它们也可以对发布文档的人保密。
  4. 他们可以拥有自定义隐私,允许您命名可以查看文档的个人用户。此外,您还可以允许用户组查看文档(例如,可能有一个名为“示例组”的组,其中有 20 个用户。您可以允许该组查看磁贴。)

我不知道如何在 MongoDB 中为此有效地实现一个模式,并且希望深入了解实现这个模式的最佳实践。

最佳答案

由于您没有指定您正在使用的驱动程序(虽然标记为 Javascript,所以也许您正在使用 Mongoose ?)我将尝试使用伪代码/结构来回答这个问题。

我认为您的 document 集合可能如下所示:

{
_id,
title,

owner, //ref to User collection?

access, //'public', 'followers' etc...

permissions[]
}

Permission 可能类似于:

{
// one or the other
user_id
group_id
}

现在,棘手的部分是生成一个给定用户可以查看的文档列表。
解决这个问题

function findDocumentsViewableByUser(userID){

var followedBy = //populate a list of userIDs that FOLLOW the passed in userID

var groupIDs = //populate a list of groupIDs this user is a member of

// all documents where access = 'public'

// all documents where access = 'followers' AND owner_id is in followedBy

// all documents where access = 'custom'
// and permissions.user_id = userID OR groupIDs contains permissions.groupID
}

根据您的 User 和 Group 类型文档的结构,上述 findDocumentsViewableByUser 中的查询将显着减少。
您最好也为此使用聚合框架。

关于python - MongoDB 和 Meteor 中隐私设置的理想模式设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com