首先,让我解释一下我的集合的模式。我有3个收集公司,交易,价格我想使用所有三个收集的信息,并使一个单一的反应,响应表。这是图片

现在,价格收集模式如下所示
{
"_id" : "kSqH7QydFnPFHQmQH",
"timestamp" : ISODate("2015-10-11T11:49:50.241Z"),
"dealId" : "X5zTJ2y675PjmaLMx",
"deal" : "Games",
"price" : [{
"type" : "worth",
"value" : "Bat"
}, {
"type" : "Persons",
"value" : 4
}, {
"type" : "Cost",
"value" : 5
}],
"company" : "Company1"
}公司集合的架构为
{
"_id" : "da2da"
"name" : "Company1"
}交易收集的架构为
{
"_id" : "X5zTJ2y675PjmaLMx",
"name" : "Games"
}对于每个公司,表中将添加3列(价值,人员,成本)对于每个交易,表中将有一个新行。
因为信息来自3个集合到单个表中。首先,我想问一下,用3个不同的集合制作一个表是否明智?如果是,我如何在blaze中做到这一点?如果不是。然后我将不得不从价格收集只做表。这个集合的模式应该是什么?附注:在这两种情况下,我都想使表格成为反应性的。
发布于 2015-10-12 00:19:55
首先,我推荐使用reywood:publish-composite来发布相关的集合。
其次,设置这样的表没有内在的问题,您首先要确定在空格栏中使用{{#each}}循环遍历哪个集合,然后定义将相关集合中的值返回到模板的帮助器。
就您的模式设计而言,选择是否在集合中使用嵌套还是使用完全独立的集合通常取决于大小。如果相关对象总体上是“小的”,那么嵌套就可以很好地工作。当您发布和查询该集合时,您会自动获得嵌套对象。如果otoh它将是“大的”和/或你想避免当相关对象中的某些东西发生变化时必须更新每个文档,那么单独的集合可能更好。
如果您确实将集合分开,那么您将希望通过_id而不是name来引用另一个集合中的对象,因为名称很容易更改。例如,在您的价格集合中,您可能希望使用companyId: "da2da"而不是company: "Company1"
https://stackoverflow.com/questions/33066940
复制相似问题