首页 文章

node.js数据库[关闭]

提问于
浏览
115

我正在寻找一个与node.js应用程序配对的数据库 . 我假设一个json / nosql数据库比关系数据库更好[我可以不用任何json / sql阻抗不匹配] . 我在考虑:

  • couchdb

  • mongodb

  • redis

任何人都有任何观点/战争故事与node.js的上述兼容性/可部署性?任何明确的收藏?

11 回答

  • 2

    我是node.js的mongodb驱动程序的开发人员 . 我正在为自己的项目使用mongodb,并对mongodb的性能非常满意 .

    Mongodb driver for node.js

    (无耻插头)随意询问有关司机的任何问题

    Google group for the mongodb driver

    或者在Stackoverflow

    享受node.js的乐趣 . 我非常喜欢这个平台:D

  • 5

    虽然您的选择在很大程度上取决于您的目标,但我非常欣赏CouchDB的原生JavaScript环境 . 数据和视图都是用JavaScript编写的,所以我认为它非常适合node.js .

    还有不同的client libraries可用,有些是相当低级别,有些则非常抽象 .

    但正如我所说,您还应该考虑数据库所需的功能 .

  • 8

    Redis是一个受欢迎的选择 . 你所追求的是一个不会阻塞的数据库驱动程序 .

    您列出的数据库都非常不同 . Redis采用键值存储的概念并随之运行,添加了各种数据类型和查询数据的方法 . 人们经常注意到redis也很好地缩小了;意味着尽管具有执行能力,但它的开销非常低 .

    以下是可用数据库模块的列表:http://wiki.github.com/ry/node/modules#database

  • 15

    我真的很喜欢CouchDB . 这是一个学习曲线,但一旦你理解了如何使用它们,视图就会非常强大 . 有一个名为cradle on github和npm的模块非常容易使用 . 我没有't been able to test how fast it is, but it is really flexible (you can access your data in a browser too if you'喜欢) .

    这里的主要问题是哪种数据库设计对您的应用程序有意义 . 您是否拥有主要是关键 Value 的数据?如果是这样,请使用Redis . 您是否拥有并非所有文档必须具有相同字段的数据?如果是这样,请使用像CouchDB这样的NoSQL数据库 .

    使用阻塞数据库的下一个更糟糕的事情是使用错误的数据库来存储数据 . CouchDB由Apache管理,因此您知道它的质量很好,但如果您的数据在SQL表或简单的键值存储中更有意义,那么使用它是没有意义的 .

    想想你的用例 . 您是否更有可能想要进行全文搜索,只是按键获取数据,或者获取具有相似属性的文档范围?

  • 18

    可能想查看Persistence,node.js的高级持久性/数据库系统 .

    来自thechangelog.com

    持久性是一个允许高级API在进程运行之间持久保存数据的项目 . 目标是支持易于使用,强大,灵活或尽可能上述所有内容的后端 . 支持的数据库包括:PostgreSQL - 企业级关系数据库 . 驱动程序以纯JavaScript实现,并使用PostgreSQL有线协议通过TCP进行通信 . Sqlite3 - 一个简单,快速,无服务器的关系数据库 . 该驱动程序是命令行sqlite3程序的包装器 . 它需要sqlite3在路径中 . 通信速度非常快,但类型不是很精确 . 只返回字符串和空值 . MongoDB - 一个可扩展,高性能,开源,无架构,面向文档的数据库 . 此驱动程序还在JavaScript中实现有线协议,并通过TCP与服务器通信 . JSON-DB - 一种自行开发的系统模式,面向文档的数据库,它使用包含JSON对象的简单平面文件 . 除了节点和文件系统之外,它根本没有任何要求 . 性能将在完全实施后确定 .

  • 25

    免责声明:我是作者 .

    也许看看BarricaneDB宣布here .

  • 79

    我不确定正确的解决方案是仅关注将数据库映射到Web堆栈,而是考虑特定于应用程序的要求 .

    您是在分析Twitter订阅源或其他大容量数据的模式,但不需要事务支持?然后选择一些非常快的东西

    您是否只想在一些表中存储一些非常基本的信息,而且它目前还不是“专注于企业”的应用程序?然后选择一些很酷的东西学习 .

    也许你要存储对客户来说非常重要的数据,强大,需要交易,并且有实时的数据复制到远程托管设施等 . 然后可能看看像postgresql . 它也不会镜像,但node.js驱动程序运行得很好,如果你不是害怕sql,它很容易得到你想要的东西 .

    至于我自己的看法,我认为使用像node.js这样的新堆栈(与php / java中的传统框架相比)增加了足够的“新”复杂性,不应该一次添加额外的层 . 这是一篇很好的文章,讨论了:

    http://nodeguide.com/convincing_the_boss.html

  • 1

    我将从我的经验中说:CouchDB具有明确的学习曲线,而MongoDB我发现它非常容易学习和设置 . 我从未使用过redis . 我建议MongoDB - 但这可能是无耻的狂热主义 - 我没有数字,嘿,只有易用性的说法 .

  • 3

    dirty是另一个平面文件键值存储 . 顾名思义,对于简单的案例来说,这是一个快速而肮脏但高效的解决方案 . 我不是作者:)

  • 1

    还需要考虑更多:

    全球:http://globalsdb.org

    GT.M(起点为https://github.com/robtweed/node-mwire

    M / DB(SimpleDB的开源克隆):https://github.com/robtweed/node-mdb并且您可以使用Node.js SimpleDB客户端来访问它:https://github.com/rjrodger/simpledb

  • 0

    我发现CouchDB非常容易掌握 . 互联网上有很多电子书可以教你如何使用CouchDB和Node.js .

    我发现this book对于学习CouchDB非常有用 .

    为了将CouchDB与Node.js一起使用,我使用NANO模块 .

    CouchDB可以托管在IriscouchCloudant上 .

相关问题