为什么我需要Node.js的Mongoose或Mongojs?

时间:2013-05-04 23:48:14

标签: node.js mongoose mongojs

主要问题

目前我很困惑,主要问题是: Mongoose / Mongojs有什么用?如果我在没有Mongoose / Mongojs的情况下运行Node.js会有什么不同?

我无法找到关于Mongoose或Mongojs如何与Node.js结合在一起的大图。

Mongoose的口号:“node.js的优雅mongodb对象建模”没有帮助。

次要问题

顺便说一句,我认为Mongoose和Mongojs正在为Node.js做同样的事情(即可以互换),但是this page似乎在描述Mongojs与Mongoose完全不同:“模拟mongodb API的简单驱动程序越多越好。”所以我把Mongoose和Mongojs放在一起可能是错的。如果是这样,请澄清。


也许我不应该使用Mongojs,因为stackoverflow甚至没有标签。如果是这样,请忽略我上面提到的有关Mongojs的所有内容。


关于使用Mongoose和Mongojs展示Node.js的主题,我应该知道this page上的其他内容吗?

感谢。

3 个答案:

答案 0 :(得分:32)

路易斯·埃利桑多说:

  

快速发布。我一直在使用Node.js,说实话,我喜欢它,与Node一起,我一直在使用MongoDB,你可能知道如果你读了我的上一篇文章,不支持连接。

     

我对项目的首选是使用mongojs,因为它很简单   简单。它使用与MongoDB上直接使用的结构相同的结构   极少数例外,主要的是能够将回调传递为   一个论点。

     

我和mongojs的关系非常快,但后来我撞墙了。加入。是   由于同样的原因你不能用MongoJS做到这一点   使用MongoDB,你必须使用某种黑魔法   他们,这就是当Mongoose超越的时候。

     

说实话,我试图避免使用猫鼬,因为我认为这很难   使用,定义模型只是在使用MongoJS时“浪费时间”   你不需要。我错了。

     

底线。如果您的项目非常简单,没有加入,没有   复杂的功能,与MongoJS一起使用,非常简单但有限。如果   你想用疯狂的想法拯救世界,你需要更多   权力比超人,花一些时间学习猫鼬并使用它,它   会把你带到那里。

     

相信我,我花了两天时间用Mongoose重写一切,我   希望有人告诉我。

http://luiselizondo.net/blogs/luis-elizondo/mongoose-vs-mongojs-nodejs

答案 1 :(得分:16)

如果您没有使用数据库MongoDB,则无需任何类型的驱动程序/ odm解决方案。如果没有这些,NodeJS就可以正常运行。

如果您尝试连接到MongoDB数据库实例,则需要某种驱动程序。我从来没有听说过MongoJS,但也许你指的是MongoDB driver?此驱动程序将帮助您与数据库进行通信,例如保存文档或检索它们。

MongooseJS是一个对象建模库。它位于MongoDB驱动程序之上,管理关系和对象映射。它可以检测对象中已更改的属性,然后运行验证和更新操作。

长话短说:您不需要显式安装两者,因为Mongoose将在通过NPM安装时包含MongoDB驱动程序。如果您没有连接到mongodb数据库,则不需要任何一个。

答案 2 :(得分:7)

如果您要在应用程序中将MongoDB用作Node.js的数据库,那么您将使用Mongoose或MongoJS执行与数据库相关的操作,例如连接到MongoDB数据库,执行CRUD操作以及更多数据库操作。

Mongoose:是一个Node.js库,它提供类似于ORM的MongoDB对象映射,以及Node.js中熟悉的接口。 Mongoose是一个很棒的ODM(对象文档映射),它意味着Mongoose将数据库中的数据转换为JavaScript对象,以便在您的应用程序中使用。

Mongoose提供直接的,基于模式的解决方案来为您的应用程序数据建模。它包括内置的类型转换,验证,查询构建,业务逻辑钩子等,开箱即用

MongoJS:是一个MongoDB的Node.js模块,它尽可能地模拟官方的MongoDB API。它包含MongoDB原生,并且非常易于使用。