猫鼬模式中很少使用的值



我有一个通过mongoose模式在中指定的用户文档,在内部我想在mongodb文档中存储一些值,比如各种东西的标志,比如"has_sent_welcome_email"。这些标志值都不会直接在web应用程序中显示,但会有外部报告读取它们。

用例的一个例子是:

  1. 用户注册,我们使用mongoose用户创建和保存新文档模型
  2. 我们尝试自动发送电子邮件响应,但我们的电子邮件由于某些原因,服务器出现错误,因此我们设置了表示欢迎的标志从未发送

这可以指代我们拥有的各种其他标志,但这正是我所指的那种情况

我应该将这些存储在mongoose用户模式中吗?

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

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

当你有一个"一对多"的关系,比如1个城市有数百万用户时,你应该考虑单独的模型/模式。否则,首选架构中的嵌入字段。因为它更容易做到,而且你可以在一个查询中获得所有数据

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

最新更新