在mongoose模式中很少使用的值

时间:2015-12-07 02:57:18

标签: node.js mongodb model mongoose schema

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

用例的一个例子是:

  1. 用户注册,我们使用mongoose用户创建并保存新文档 模型。
  2. 我们尝试发送自动电子邮件回复,但我们的电子邮件 服务器错误由于某种原因所以我们设置标志来表示欢迎 从未发过。
  3. 这可以引用我们拥有的各种其他标志,但这是我所指的那种情况。

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

    如果它们永远不会被展示,那似乎有点浪费,但是如果我这样做的话,设置标志似乎更容易。可以/我应该将标志作为单独的模型/模式吗?是否有关于此类事情的最佳做法?

1 个答案:

答案 0 :(得分:2)

我认为可以将这些标志存储在用户模式中。由于这些标志与用户有关,因此基数很少(对于布尔值仅为真或假),最重要的是更容易实现

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

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