我有通过mongoose架构指定的用户文档,在内部我想在mongodb文档中存储一些值,例如各种事物的标志,例如“has_sent_welcome_email”。 这些标志值都不会直接在网络应用程序中看到,但会有外部报告来读取它们。
用例的一个例子是:
这可以引用我们拥有的各种其他标志,但这是我所指的那种情况。
我应该将这些存储在mongoose用户架构中吗?
如果它们永远不会被展示,那似乎有点浪费,但是如果我这样做的话,设置标志似乎更容易。可以/我应该将标志作为单独的模型/模式吗?是否有关于此类事情的最佳做法?
答案 0 :(得分:2)
我认为可以将这些标志存储在用户模式中。由于这些标志与用户有关,因此基数很少(对于布尔值仅为真或假),最重要的是更容易实现
当你拥有一对多的"时,你应该关注单独的模型/模式。像1个城市的关系拥有数百万用户。否则,首选模式中的嵌入字段。因为它更容易做,并且您可以在一个查询中获取所有数据
对于您的应用,如果您不希望mongo返回额外字段,您可以使用投影(http://mongoosejs.com/docs/queries.html)来减少服务器和您的网络应用之间的网络传输,以减少服务器和网络之间的网络传输 - 应用