Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 流星收藏分组的最佳方式_Mongodb_Meteor - Fatal编程技术网

Mongodb 流星收藏分组的最佳方式

Mongodb 流星收藏分组的最佳方式,mongodb,meteor,Mongodb,Meteor,我现在正在处理的Meteor项目有多个集合:项目、传感器和读数。从关系上看,用户有很多项目,项目有很多传感器,传感器有很多读数 在Meteor中组织这项活动的最佳方式是什么?现在,我已经创建了三个离散集合,传感器和读数集合中的每个项目都有一个“父项”字段,该字段带有一个mongo\u id以将其与父项关联 我不确定这是否是最好的方法,另一种方法是建立一个包含所有传感器信息和读数的集合“项目”。将新传感器添加到项目中时,只需将新实例化的传感器对象附加到project.Sensors数组中即可 你怎

我现在正在处理的Meteor项目有多个集合:项目、传感器和读数。从关系上看,用户有很多项目,项目有很多传感器,传感器有很多读数

在Meteor中组织这项活动的最佳方式是什么?现在,我已经创建了三个离散集合,传感器和读数集合中的每个项目都有一个“父项”字段,该字段带有一个
mongo
\u id以将其与父项关联

我不确定这是否是最好的方法,另一种方法是建立一个包含所有传感器信息和读数的集合“项目”。将新传感器添加到项目中时,只需将新实例化的传感器对象附加到project.Sensors数组中即可


你怎么看?

这一切都取决于你的用例。你的应用程序是写重还是读重

您现在设置它的方式称为标准化方式。您没有冗余数据,并且数据与其他集合中的其他数据相关。(类似于SQL中的表联接)。当您更新数据时,您只需更新它所属的小记录。缺点是,当您需要读取大量数据时,由于所有不同的db查询,需要花费较长的时间

您建议的替代方案称为非规范化,即向记录中添加冗余数据或将集合分组到更大的集合中。这样做的好处是,在读取数据时,您不需要进行太多的数据库查找,因为您需要的所有数据大多都在一条记录中。另一方面,写入数据库变得更加复杂,因为您不需要更新一个小记录,只需要更新一个或多个大记录


无论哪种方式,都会使用这两种方法,这取决于用例和您希望应用程序执行的方式(更高的读或写性能)。

这个问题似乎离题了,因为它是关于解决问题的好模式。因此,在programmers.stackexchange.com上更合适。