我可以使用MongoDB作为iOS上CoreData的替代品吗?

我刚开始阅读关于MongoDB和CouchDB等NoSQL技术。 我有兴趣了解我是否可以使用MongoDB或实际上任何NoSQL技术来替代Core Data应用程序。

核心数据应用程序可能需要很长时间才能学习和实现,特别是如果您的应用程序非常复杂并且您只想执行一些简单的添加,编辑,删除和查询(CRUD内容)。

因为它看起来像JSON并且看起来可以运行得非常快; 我对核心数据上NoSQL的实现感兴趣。

我可以将MongoDB作为本机运行吗? 我做了一些谷歌搜索,但没有真正能够得到我以后的具体答案。

如:

我不确定iPhone平台上NoSQL的职责是否受支持,如果我提交了NoSQL应用程序,它是否会被苹果团队拒绝?

谢谢


另外,我会注意到这是一种常见的误解,但核心数据不是数据库系统。

相反,它是一个运行时对象图管理系统,如果您需要,它可以作为选项持续添加。 它的主要功能是提供模型 - 视图 - 控制器设计模式的模型层。 因此,它处理的不仅仅是从磁盘上获取数据。

核心数据确实有一条学习曲线,但根据我的经验,许多人面临的最大障碍是试图将核心数据视为某种面向对象的SQL封装。 从这个角度来看,核心数据非常混乱,因为它似乎需要学习如此多的东西,而与持久性无关。

使用像SQLite,MongoDB和CouchDB这样的数据库进行持久化并不会真正加速事情的发展,因为尽管你可能更好地理解他们如何从磁盘上下数据,但它们在管理数据和关系方面根本没有帮助到其他数据对象和UI的对象。 你仍然必须有一个数据模型,你将不得不手动编写所有的代码。 除非您的数据模型非常简单,否则需要比学习核心数据更多的时间。

学习核心数据的最好方法是忽略对象图完全可以持久的事实。 从您有大量代表您的应用程序的数据模型的对象开始,您必须管理它们的属性和关系。


MongoDB在这里可能不太合适。 服务器假定磁盘空间不是限制因素。 当前的stabel brance(1.6.x)不提供单个实例的数据持久性。 它还使用内存映射文件,这些文件在专用服务器上很好,但会在典型的PC上导致大量磁盘搅动和不必要的内存使用。 我对Core Data没有经验,但对我来说听起来像是一个隔阂。


MongoDB不能用作嵌入式数据库。 它专为速度和可伸缩性而设计,不太适合像IOS这样的嵌入式操作系统的架构。 然而,通过HTTP / S等标准协议与“云”中的某些MongoDB支持服务交谈不应该成为问题。 你只需要在MongoDB前写一些web-gateway。

链接地址: http://www.djcxy.com/p/86373.html

上一篇: Can I use MongoDB as a replacement for CoreData on iOS?

下一篇: Ways to implement data versioning in MongoDB