Mongodb 如何在NoSQL世界中实现数据库抽象/独立
我们正在考虑在Java服务器端应用程序中使用MongoDB作为数据库。 在我之前的项目中,我们使用Hibernate抽象底层SQL数据库,这样我们就可以在不更改应用程序代码的情况下从MySQL切换到Postgres(例如)。(这是Hibernate除了通常的ORM特性之外为我们提供的一个+)Mongodb 如何在NoSQL世界中实现数据库抽象/独立,mongodb,couchdb,database-migration,database,nosql,Mongodb,Couchdb,Database Migration,Database,Nosql,我们正在考虑在Java服务器端应用程序中使用MongoDB作为数据库。 在我之前的项目中,我们使用Hibernate抽象底层SQL数据库,这样我们就可以在不更改应用程序代码的情况下从MySQL切换到Postgres(例如)。(这是Hibernate除了通常的ORM特性之外为我们提供的一个+) 我为面向文档的NoSQL数据库搜索了一个类似的抽象层,结果没有结果 尽管MongoDB满足了我们今天的需求,但如果一个更好的面向文档的NoSQL DB在三年后出现,我们不想改变我们的应用程序代码以转移到新的
我为面向文档的NoSQL数据库搜索了一个类似的抽象层,结果没有结果 尽管MongoDB满足了我们今天的需求,但如果一个更好的面向文档的NoSQL DB在三年后出现,我们不想改变我们的应用程序代码以转移到新的DB 一种解决方案是让我们自己编写抽象层(如果没有其他选择,我们将这样做) 但如果来自ORM世界的人直接编码到NoSQL DB接口上,我会感到惊讶?!数据库独立性在NoSQL世界中不是一个问题吗?
还是通过其他方式实现的?NoSQL没有太多成熟的数据库无关ORM层的原因是:
但是请注意,虽然在面向文档的数据库世界中没有解决与数据库无关的ORM的解决方案,但是有很多针对特定数据库的ORM包装器。您没有提到您正在使用哪种编程语言,但大多数主流语言都有解决方案。这绝对比您自己的更可取。如果您使用的是mongo,您可以使用spring数据,而且您应该实现存储库模式。即使像前面提到的那样,它也不会像SQL框架那样不可知,但如果您能够以mvc模式的良好级别实现这一点,我认为这对于您的解决方案来说就足够了 相关的问题可能会给你一些启示:有一个用于java的Mongolink。我已经为MongoDB使用了PHPs原则(还有CouchDB alpha支持!)。另一方面,当您比较Doctrine的Mongo ODM和PHP Mongo驱动程序时,它们并没有那么不同。