最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

哪个数据库适合我的应用程序mysql或mongodb?使用Node.js,Backbone,Now.js

IT培训 admin 5浏览 0评论

哪个数据库适合我的应用程序mysql或mongodb?使用Node.js,Backbone,Now.js

我想使用以下方式制作docs.google之类的应用程序(没有其api,完全在我自己的服务器上)前端:骨干后端:节点

您认为哪个数据库更好? MySQL或MongoDB的?应该支持良好的可伸缩性。我熟悉php上的mysql,如果答案是mysql,我会很高兴。但是我看到了很多教程,他们使用mongodb,为什么他们在没有mysql的情况下使用mongodb?我应该使用什么?

任何人都可以给我链接一些使用骨干,Node,mysql(或mongo)构建的示例应用程序(带有源代码)。或至少一个应用。与节点和MySQL

感谢

回答如下:

使用MongoDB,您只需store JSON对象并检索它们的完整格式,因此您实际上不需要ORM层,并且花费了更少的CPU时间来回转换数据。 MongoDB背后的开发人员还使水平扩展数据库具有更高的优先级,并允许您运行任意Javascript代码在DB端预处理数据(允许对数据进行map-reduce样式过滤)。

但是您会因此而损失一些:您无法加入记录。实际上,您存储的JSON结构只能通过SQL中的联接来完成,但是在MongoDB中,数据只有一种结构,而在SQL中,您可以进行不同的查询并以其他方式更轻松地表示数据,因此,如果您需要对您的数据库进行大量分析,MongoDB会变得更加困难。

我认为MongoDB中的查询语言比SQL更“粗糙”,部分是因为它不那么熟悉,部分是因为查询功能随意地组合在一起,部分是为了使其成为有效的JSON,部分是因为存在从字面上看,有两种做同一件事的方式,有些是较旧的方式,没有其他方式有用或定期格式化。而且,SQL的简单基于行的设计增加了数组和子对象类型的复杂性,因此语法必须能够处理对包含您定义的值的[[some

,<< all 定义的值,包含only定义的值,并包含none定义的值。相同的区别适用于对象键及其值,这使查询语法更难掌握。 (虽然我可以看到需要用到小写字母,但是$where查询参数是一个警笛之歌,它需要在数据的每个记录上运行并返回布尔值的javascript函数,因为您可以轻松定义哪些对象是否要返回,但必须在数据库中的[[every记录上运行,无法使用索引。)所以,这取决于您要执行的操作,但是由于您说它是针对Google Docs克隆的,因此您[[大概不在乎任何表示形式但是]文档表示形式本身以及您'可能仅根据文档ID,文档名称或所有者的ID /名称进行查询,在查询中没有什么太复杂的。

然后,我说能够获取用户正在编辑的文档的JSON表示,然后将其放入数据库中并使其自动索引这些重要字段,这值得学习新的数据库。 >

我还很努力地选择使用MongoDB为并非针对其构建的任务而创建的炒作。所以我的2美分是:

就像David所说的那样,在MongoDB中存储和检索文档可能是分层对象很容易。如果您要存储大于16Mb的文档,它将变得更加复杂-MongoDB的答案是GridFS。

哪个数据库适合我的应用程序mysql或mongodb?使用Node.js,Backbone,Now.js

我想使用以下方式制作docs.google之类的应用程序(没有其api,完全在我自己的服务器上)前端:骨干后端:节点

您认为哪个数据库更好? MySQL或MongoDB的?应该支持良好的可伸缩性。我熟悉php上的mysql,如果答案是mysql,我会很高兴。但是我看到了很多教程,他们使用mongodb,为什么他们在没有mysql的情况下使用mongodb?我应该使用什么?

任何人都可以给我链接一些使用骨干,Node,mysql(或mongo)构建的示例应用程序(带有源代码)。或至少一个应用。与节点和MySQL

感谢

回答如下:

使用MongoDB,您只需store JSON对象并检索它们的完整格式,因此您实际上不需要ORM层,并且花费了更少的CPU时间来回转换数据。 MongoDB背后的开发人员还使水平扩展数据库具有更高的优先级,并允许您运行任意Javascript代码在DB端预处理数据(允许对数据进行map-reduce样式过滤)。

但是您会因此而损失一些:您无法加入记录。实际上,您存储的JSON结构只能通过SQL中的联接来完成,但是在MongoDB中,数据只有一种结构,而在SQL中,您可以进行不同的查询并以其他方式更轻松地表示数据,因此,如果您需要对您的数据库进行大量分析,MongoDB会变得更加困难。

我认为MongoDB中的查询语言比SQL更“粗糙”,部分是因为它不那么熟悉,部分是因为查询功能随意地组合在一起,部分是为了使其成为有效的JSON,部分是因为存在从字面上看,有两种做同一件事的方式,有些是较旧的方式,没有其他方式有用或定期格式化。而且,SQL的简单基于行的设计增加了数组和子对象类型的复杂性,因此语法必须能够处理对包含您定义的值的[[some

,<< all 定义的值,包含only定义的值,并包含none定义的值。相同的区别适用于对象键及其值,这使查询语法更难掌握。 (虽然我可以看到需要用到小写字母,但是$where查询参数是一个警笛之歌,它需要在数据的每个记录上运行并返回布尔值的javascript函数,因为您可以轻松定义哪些对象是否要返回,但必须在数据库中的[[every记录上运行,无法使用索引。)所以,这取决于您要执行的操作,但是由于您说它是针对Google Docs克隆的,因此您[[大概不在乎任何表示形式但是]文档表示形式本身以及您'可能仅根据文档ID,文档名称或所有者的ID /名称进行查询,在查询中没有什么太复杂的。

然后,我说能够获取用户正在编辑的文档的JSON表示,然后将其放入数据库中并使其自动索引这些重要字段,这值得学习新的数据库。 >

我还很努力地选择使用MongoDB为并非针对其构建的任务而创建的炒作。所以我的2美分是:

就像David所说的那样,在MongoDB中存储和检索文档可能是分层对象很容易。如果您要存储大于16Mb的文档,它将变得更加复杂-MongoDB的答案是GridFS。
发布评论

评论列表 (0)

  1. 暂无评论