【问题标题】:Rarely used values in mongoose schema猫鼬模式中很少使用的值
【发布时间】:2016-03-11 14:12:55
【问题描述】:

我有一个通过 mongoose 模式指定的用户文档,在内部我想在 mongodb 文档中存储一些值,例如各种事物的标志,例如“has_sent_welcome_email”。 这些标志值中的任何一个都不会直接在网络应用程序中看到,但会有外部报告来读取它们。

用例的一个例子是:

  1. 用户注册,我们使用猫鼬用户创建并保存新文档 模型。
  2. 我们尝试发送自动电子邮件回复,但我们的电子邮件 由于某种原因导致服务器错误,因此我们设置标志以表示欢迎 从未发送过。

这可以引用我们拥有的各种其他标志,但这是我所指的那种场景。

我应该将这些存储在 mongoose 用户架构中吗?

如果它们永远不会显示,这似乎有点浪费,但是如果我这样做,设置标志似乎更容易。我可以/应该将标志作为单独的模型/模式吗?有没有围绕这类事情的最佳实践?

【问题讨论】:

    标签: node.js mongodb model mongoose schema


    【解决方案1】:

    我认为将这些标志存储在用户架构中很好。由于这些标志与用户相关,基数很少(布尔值只有真假),最重要的是更容易实现

    当您有“一对多”关系(例如 1 个城市拥有数百万用户)时,您应该关注单独的模型/模式。否则,首选模式中的嵌入字段。因为它更容易做到,并且您可以在一个查询中获取所有数据

    对于您的应用程序,如果您不希望 mongo 返回额外的字段,您可以使用投影 (http://mongoosejs.com/docs/queries.html) 减少服务器和 Web 应用程序之间的网络传输,以减少服务器和 Web 应用程序之间的网络传输

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 2016-08-05
      • 2019-12-31
      • 2018-04-17
      • 1970-01-01
      • 2020-09-18
      • 2016-12-29
      相关资源
      最近更新 更多