Django - 将用户存储在Mongo中的文档中

时间:2014-01-20 22:05:26

标签: django mongodb mongoengine

我们正在开发一个服务于多个客户的Web应用程序。每个客户端都有多个用户。我们想要设计我们的模型模式:

  1. 客户1
    1. 用户1-1
    2. 用户1-2
    3. 用户1-3
  2. 客户2
    1. 用户2-1
    2. 用户2-2
    3. 用户2-3
  3. 等...
  4. 我有两个问题,因为我们在MongoEngine的帮助下在Django中写这个。通过嵌套我们的用户(反过来又是登录),这对认证来说是一种痛苦吗?换句话说,MongoEngine是否支持这种类型的架构?并且可以以某种方式将当前Client对象附加到请求参数吗?

1 个答案:

答案 0 :(得分:1)

如何查询代码并使用数据应该有助于推动如何设计架构。

查询将用户登录的内容是什么?可以匹配整个文档($elemMatch),如果存储在列表中,则必须这样做。否则,如果使用dot notation,则可以匹配User1用户名和User2密码。

所以你可以使用那个模式,但你必须要小心,可能不是最好的做法,特别是如果你想看看嵌套的用户对象会很麻烦。拥有大量无界限列表也不会表现良好。

至于将用户添加到请求上下文中 - 您始终可以创建own context来执行此操作。

最好翻转它并在Django中使用身份验证框架,但将客户端添加到用户。