我发现许多涉及Meteor框架的参考网址都使用mongodb作为数据库,但是我对mongodb并不是很了解。那么是否有办法可以用mysql来代替mongodb呢?
我发现许多涉及Meteor框架的参考网址都使用mongodb作为数据库,但是我对mongodb并不是很了解。那么是否有办法可以用mysql来代替mongodb呢?
有一种方法,但是在目前的框架阶段,这是一条未铺设的道路。基本上,您需要编写一个包装器,将SQL转换为Meteor的Minimongo,然后再进行反向转换。如果您不是Meteor和Mongo大师,则这不是可行的任务。
曾经有人尝试编写这样的适配器。我知道的最先进的是这个:https://github.com/drorm/meteor-sql。可以用来玩,但我认为它还没有准备好投入生产。此外,目前没有办法使用除Mongo以外的任何东西与Meteor账户系统配合使用。您要么必须仍然使用它来进行用户帐户,要么放弃它们提供的巨大便利。
我建议您尝试使用当前的Meteor,以及Mongo - 它比您想象的要容易。它不会增加太多的学习曲线,除了过滤和更新运算符之外,您甚至不会注意到自己使用某些奇怪的数据库 - 它就像使用本机Javascript对象一样。没有模式,没有迁移,也不需要对象映射。您只需获取数据,将其放入集合中,然后忘记SQL让您思考的所有其他内容。
也许有一种方法可以做到这一点,但是它很棘手:
从npm安装Mysql驱动程序,然后您可以选择使用MongoDb作为第一个前端或来自Arunoda的Meteor Streams。 然后,您只需使用Meteor.Collections的deny/allow系统将客户端的插入/更新/删除绑定到Mysql。 您还应该使用发布系统查询Mysql数据库并将数据返回给客户端。
最后一个问题是关于服务器数据库观察:如果Mysql中有任何更改,它不会提醒所有其他客户端,除非可能使用Meteor.Streams。 实现这个可能会相当有趣。