4

我发现了许多 Meteor 框架的参考 url,我发现 mongodb 作为数据库,因为我对 mongodb 了解不多。那么有没有办法实现mysql而不是mongodb

4

4 回答 4

7

一种方法,但在目前的框架阶段,它是一条未铺砌的道路。基本上,您需要编写一个包装器,将 SQL 转换为 Meteor 的 Minimongo 并返回。如果您还不是 Meteor 和 Mongo 大师,这不是一项可行的任务。

有人尝试编写这样的适配器。我知道的最先进的是:https ://github.com/drorm/meteor-sql 。它可以用来玩耍,但我认为它还没有准备好生产。此外,目前除了 Mongo 之外,没有其他方法可以使用 Meteor 帐户系统。您要么需要将它用于用户帐户,要么放弃它们提供的极大便利。

我建议您尝试使用目前的 Meteor 以及 Mongo - 它比您想象的要容易。它不会增加太多的学习曲线,而且除了过滤器和更新操作符之外,您根本不会注意到您使用了一些奇怪的数据库 - 这就像使用原生 Javascript 对象一样。没有模式,没有迁移,也不需要对象映射。您只需获取数据,将其放入集合中,然后忘记 SQL 让您考虑的所有其他内容。

于 2013-10-09T10:46:35.190 回答
1

文档中:

今天,大多数 Meteor 应用程序都使用 MongoDB 作为他们的数据库,因为它是最好的支持,但对其他数据库的支持将在未来出现。Meteor.Collection 类用于声明 Mongo 集合并对其进行操作。感谢 minimongo,Meteor 的客户端 Mongo 模拟器,Meteor.Collection 可以在客户端和服务器代码中使用。

由于客户端使用 minimongo,使用 RDBMS 可能无法提供最佳匹配(因为查询语言和数据结构非常不同)。

您可能对像微风.js之类的东西感兴趣,它从不同的方向解决了丰富的数据同步服务的问题,但它适合关系数据库。

于 2013-10-09T10:54:04.140 回答
1

也许有一种方法可以做到这一点,但这很棘手:

从 npm 安装 Mysql 驱动程序然后您可以选择使用 MongoDb 作为第一个前端或来自 Arunoda 的 Meteor Streams。然后您只需使用 Meteor.Collections 中的拒绝/允许系统将客户端的插入/更新/删除绑定到 Mysql 您还应该使用发布系统查询 Mysql 数据库并将数据返回给客户端。

最后一个问题是关于服务器数据库观察:如果 Mysql 发生变化,它不会提醒所有其他客户端,除了 Meteor.Streams。实现起来可能会很有趣。

于 2013-10-10T08:17:25.547 回答
1

你可以看看这个流星包nodets:mysql。在服务器和客户端使用 mysql 每次数据库更改时都会更新所有订阅。

于 2015-10-26T03:39:33.447 回答