我发现很多人为Meteor框架引用url,我发现mongodb是数据库,因为我对mongodb知之甚少。那么有没有办法实现mysql而不是mongodb
答案 0 :(得分:7)
是的一种方式,但在现阶段框架是正确的,这是一条未铺砌的道路。基本上,你需要编写一个从SQL转换为Meteor的Minimongo并返回的包装器。如果你不是Meteor和Mongo大师,这不是一个可行的任务。
有人试图编写这样的适配器。我所知道的最先进的是:https://github.com/drorm/meteor-sql。它可以用来玩,但我不认为它的生产准备就绪。此外,目前还有没有方式将Meteor帐户系统与Mongo以外的任何其他方式一起使用。您无论如何都需要将其用于用户帐户,或者放弃他们提供的极大便利。
我建议你和Mongo一起尝试Meteor,这比你想象的容易。它不会增加太多的学习曲线,除了过滤器和更新操作符之外,你根本不会注意到你使用了一些奇怪的数据库 - 它就像使用本机Javascript对象一样。没有架构,没有迁移,也不需要对象映射。您只需获取数据,将其放入集合中,并忘记SQL让您考虑的所有其余内容。
答案 1 :(得分:1)
今天大多数Meteor应用使用MongoDB作为他们的数据库,因为它是 最好的支持,虽然支持其他数据库即将到来 未来。 Meteor.Collection类用于声明Mongo 收藏和操纵它们。感谢minimongo,Meteor的 客户端Mongo模拟器,可以从两者中使用Meteor.Collection 客户端和服务器代码。
由于客户端使用minimongo,使用RDBMS可能无法提供最佳匹配(因为查询语言和数据结构非常不同)。
您可能会对breeze.js这样的问题感兴趣,因为它涉及来自不同方向的丰富数据同步服务的问题,但它适合关系数据库。
答案 2 :(得分:1)
可能有办法做到这一点,但这很棘手:
从npm安装Mysql驱动程序 然后你可以选择使用MongoDb作为Arunoda的第一个前端或Meteor Streams。 然后你只需要使用Meteor.Collections中的deny / allow系统将插入/更新/删除从客户端绑定到Mysql 您还应该使用发布系统来查询Mysql数据库并将数据返回给客户端。
最后一个问题是关于服务器数据库观察:如果Mysql中的某些内容发生了变化,它将不会警告所有其他客户端,除非可能使用Meteor.Streams。 实施起来可能相当有趣。
答案 3 :(得分:1)
你可以看一下这个流星包nodets:mysql。 在服务器和客户端使用mysql,每次db更改时都会更新所有订阅。