我已经为一些实体创建了一个API,每个实体都有自己的模式和相应的集合。
posts
authors
comments
posts
与authors
之间存在一对一的关系,posts
与comments
之间存在一对多的关系。
现在,数据大小不断增加,我们计划按客户分布数据,以加快查询和聚合。这意味着我们现在将具有以下集合:
<customer_1>_posts
<customer_2>_posts
...
<customer_n>_posts
<customer_1>_authors
<customer_2>_authors
...
<customer_n>_authors
<customer_1>_comments
<customer_2>_comments
...
<customer_n>_comments
由于结构在所有<customer_x>_posts
中是通用的,在相应的authors
和comments
中也是如此,因此我考虑使用通用的模式和API。
现在,是否有一种方法可以使用常见的Mongoose模型,并在保存时根据customer字段的值来决定数据存储的集合?这将使我不必为每个客户端创建单独的模型,也不必创建单独的端点。
1条答案
按热度按时间mmvthczy1#
您可以动态地构建模型,也可以动态地查找和使用模型。
创建模型的位置:
然后利用:
这就是说--虽然这绝对是可行的--但这不是一个好的模式。如果你正确地使用索引,Mongo应该可以扩展到你所有的用例,而不需要增加复杂性。数百万的帖子和评论仍然可以快速和持续,而不需要分成单独的集合。