如何在Meteor中处理关系数据?

时间:2015-05-20 08:50:46

标签: mysql mongodb meteor nosql

我正在使用Discover Meteor书来学习Meteor。

我来自PHP和MySQL背景,我想作为副项目的应用程序是一个实时的步步高Web应用程序。虽然Meteor的反应性非常非常大,但我对如何处理关系数据(例如游戏,用户,锦标赛,朋友,团队等)感到困惑。

我已经在StackOverflow上阅读了很多关于如何将MySQL与Meteor一起使用的答案(从旧到旧)。我的搜索引导我numtel/meteor-mysql。但是,当我查看该存储库中提供的示例时,它就像Meteor自己的MongoDB实现一样干净。

根据我的理解,我的选择如下:

  • 使用MongoDB,并在Javascript中重写RDBMS中的许多功能
  • 使用Meteor中不如MongoDB支持的RDBMS
IMO,选项二的工作要少得多,我认为未来可能会减少问题。例如,在Why You Should Never Use MongoDB的结语中解决问题。

  

我们也可以将这些数据建模为一组嵌套哈希。关于特定电视节目的信息集是一个大的嵌套键/值数据结构。在电视节目中,有一系列季节,每个季节也都是哈希。在每个季节中,一系列剧集,每个剧集都是哈希,依此类推。这就是MongoDB对数据建模的方式。每个电视节目都是一个文档,其中包含我们为一个节目所需的所有信息。

但是,那么,您如何查询有人已主演的电视节目?

回到我原来的问题:这里有什么我想念的吗?处理关系数据是许多应用程序需要做的事情,但我似乎无法找到一个干净的解决方案

1 个答案:

答案 0 :(得分:0)

如果你在我看来选择1,那将会少得多。

使用MongoDB学习起来并不困难,而且由于MongoDB使用JSON对象并且Meteor及其所有软件包本身都支持它,因此工作量会少得多。

我建议看看aldeed包:collection2和simple-schema来构建你的集合。我还建议使用collection-helpers包来帮助加入。

如果你有一个带有name,authorId和content字段的帖子集合,那么为了得到这篇文章的作者,你要编写Meteor.users.findOne(userId)。

希望能稍微清理一下并让你继续前进。