【问题标题】:Is there a performant JSON based DB with a client side implementation?是否存在具有客户端实现的基于 JSON 的高性能数据库?
【发布时间】:2013-11-29 18:32:05
【问题描述】:

我发现了这个关于SQL-like query libraries 的问题。我正在寻找的是一个允许查询 JSON 对象的库,它嵌入在客户端应用程序(浏览器)中,以及来自远程高性能专用数据库。

【问题讨论】:

    标签: database json nosql client-side server-side


    【解决方案1】:

    为了完整起见,我将丢弃 PouchDB 和 CouchDB。

    客户端邮袋:http://pouchdb.com/ 服务器端的沙发:http://couchdb.apache.org/

    【讨论】:

    • 特别是与Couchbase Sync Gateway结合使用。我无法想象一个用例,您希望与宇宙的其他部分共享您的数据库的整个内容。
    【解决方案2】:

    我正在寻找同样的东西,经过大量搜索后突然发现 NeDB,它现在有一个浏览器实现。

    https://github.com/louischatriot/nedb

    与 PouchDB 不同,它具有类似 Mongo 的查询 API。

    【讨论】:

    • 请注意,PouchDB 现在通过 PouchDB-find 提供类似 MongoDB 的查询语言
    • 这是使用内存功能的绝佳选择。只需添加脚本标签 nedb.min.js(浏览器输出版本)并以 var db = new Nedb() 开头。 (注意它可以用ajax加载和保存文件)
    【解决方案3】:

    您可以尝试与 couchbase 服务器同步的 couchbase lite(客户端)。

    http://www.couchbase.com/communities/couchbase-litehttp://www.couchbase.com/

    它是一个基于文档的 nosql 数据库,查询不如 SQL 丰富,但您可以创建额外的索引,通过使用 couchbase 视图(map reduce 作业)来查询您的数据。这些都在客户端和服务器上工作,它还支持设备和服务器之间的同步。

    【讨论】:

    • 我不知道我是怎么错过的。我去看看。
    【解决方案4】:

    (是的,我迟到了)

    今天还有一个不错的选择:https://github.com/typicode/lowdb。它使用 lodash,并且在 unpkg 上可以使用 UMD 构建来进行测试和快速原型设计:

    <script src="https://unpkg.com/lodash@4/lodash.min.js"></script>
    <script src="https://unpkg.com/lowdb@0.17/dist/low.min.js"></script>
    <script src="https://unpkg.com/lowdb@0.17/dist/LocalStorage.min.js"></script>
    <script>
      var adapter = new LocalStorage('db')
      var db = low(adapter)
    </script>
    

    然后,像这样使用它:

    // Add a post
    db.get('posts')
      .push({ id: 1, title: 'lowdb is awesome'})
      .write()
    
    db.get('posts')
      .find({ id: 1 })
      .value()
    

    Here are more examples

    检查可用的不同适配器

    【讨论】:

      【解决方案5】:

      如果你想使用 SQL 查询,你可以试试N1QL。这个对 Couchbase 的扩展允许您查询与 SQL 查询非常相似的系统。你也应该看看ElasticSearch。这是一个非常强大的搜索引擎,但查询语言不是 SQL。 Couchbase 和 ElasticSearch 通过plugin 很好地相互交互。 OrientDB 还允许对与 SQL 非常相似的语言进行查询。我认为可以将 OrientDB 调整为 json 格式。当然还有MongoDB

      【讨论】:

      • 我不太明白“在浏览器中工作”是什么意思。我可以说 Couchbase、ElasticSearch 和 MongoDB 都有 Web Console,这使得管理和修改数据库变得非常容易。 ElasticSearch 和 Couchbase 也有相当丰富的 REST 接口。如果您更详细地解释“在浏览器中工作”的含义,也许我可以更准确地回答。
      • N1QL 未来将成为 couchbase 的一部分,目前处于预生产阶段,并没有固定的发布日期。
      • 客户端我的意思是它们在客户端上运行(在浏览器或 v8 中)。我打算将它用于嵌入式应用程序。
      猜你喜欢
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      相关资源
      最近更新 更多