首页 文章

混合应用程序:哪种DB策略“PouchDB CouchDB”或Couchbase Mobile?

提问于
浏览
-1

上下文

我正在使用Cordova开发混合/移动应用程序 . 此应用程序显示内容,例如新闻,杂志文章和天气信息,这些内容通过Web应用程序(使用PHP开发的自托管)动态生成和交付 . 为了确定哪些移动设备“获取”哪些内容,我需要不断跟踪每台设备上的显示历史记录,并收集信息,例如:文章名称,显示日期/时间,位置(纬度/经度)等 .

我遇到的大问题是......

现在,因为我收集的数据是非结构化的,所以我首先尝试使用Firebase(Google),这使我能够使用键:值模式实时收集所有数据,然后在webapp上检索我的数据运行另一个JS脚本 . 这个解决方案的问题是:

  • 查询可能性太有限了 .

  • 我'm not comfortable leaving all my data handled by Google (Nothing against Google, butI' d喜欢拥有我的数据) .

问题

我可以使用哪些存储策略?我一直在阅读很多关于Redis,Parse-server,PouchDB CouchDB和MongoDB的内容,但是我迷失在关于NoSql数据库的信息世界中,现在我真的不知道该怎么做:'(

我一直在为我的项目使用关系数据库(Mysql,MariaDB),但是我并不害怕使用NoSQL数据库,但是如果有人能指出我最容易实现的解决方案,我会很感激 .

编辑(17/04/18)

我想我把我的问题缩小到2个选项

  • PouchDB CouchDB,或

  • Couchbase Mobile = Couchbase Lite Sync Gateway

任何人都可以就这两个选项给我一些反馈意见吗?易于实施,查询,维护等?

谢谢!

1 回答

  • 0

    想想,我应该更好地解释我之前的评论 . Couchbase Mobile = Couchbase Lite(在移动设备上运行)Sync Gateway Couchbase Server(托管在后端)

    • W.r.t你的第一个担忧

    查询可能性太有限了 .

    Couchbase Server支持N1QL - 这是NoSQL的SQL的超集 . 因此,您应该可以使用Couchbase Server进行所需的大量查询 . 这个link讨论了如何进行地理空间查询(因为您将其作为用例提及)

    • W.r.t你的第二个问题

    我不愿意让我的所有数据都由谷歌处理(对谷歌没什么,但我更愿意拥有自己的数据) .

    使用Couchbase Mobile,您可以控制数据的托管位置 - 您可以选择在Couchbase服务器中保存数据,您可以在私有/公共 Cloud (AWS,Azure,GCP)中托管数据 .

    • 关于Couchbase Lite中Cordova支持的注意事项:

    它作为Couchbase Lite 1.4中的社区项目得到支持 . 但是,在最新的2.0版本中,您必须在本机API之上开发Cordova插件 .

相关问题