猫鼬和mongoJS有什么区别?我应该使用哪个?

时间:2018-03-28 04:32:21

标签: node.js mongodb mongoose mongojs

我只是想知道,mongoose和mongoJS的区别是什么。而且,如果我们使用mongoose或mongoJS,优势和缺点是什么? 因为我们知道有许多依赖用于连接NodeJS和MongoDB。例如mongoose和mongoJS。

3 个答案:

答案 0 :(得分:1)

Mongoose是Mongodb的更高级别接口,实际上使用了MongoDB驱动程序mongodb.js。问题不在于哪个更好或更差,对我们来说问题是

<强>&GT;在Mongoose中ODM的好处是否超过了缺点?

如果您正在寻找对象建模(ODM)工具,以便您不必了解Mongodb的工作方式,那么Mongoose可能适合您。如果你想要一个快速的驱动程序并真正充分利用Mongodb,那么使用本机驱动程序。我们知道Mongodb的方式,所以Mongoose会放慢使用速度和我们的应用程序。

答案 1 :(得分:0)

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

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

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

更好的是你更喜欢mongoose,因为它带有两个库,可用于调用mongoDB连接的实例和驱动程序。

答案 2 :(得分:0)

mongoose 是ORM - 对象关系映射。它添加了一个抽象层,其中包含许多操作数据的方法。如链接这样:

Tank
  .find({ size: 'small' })
  .where('createdDate')
  .gt(oneYearAgo)
  .exec(callback);

这可能对新手有好处,因为它易于使用,语法清晰。但它可能比本机方法慢。

MongoJS只是node-mongodb-native的包装器,有一些改进。什么是土生土长?它是一个允许从Node.js程序直接调用MongoDB的驱动程序。虽然MongoDB的原生版本是性能的最佳选择,但它遵循与Mongo Shell相同的原始语法,这对于新手来说非常复杂。

就个人而言,我最初使用的是Mongoose。现在我喜欢使用node-mongodb-native,但必须添加一些方法以使其更容易。无论如何,MongoJS是一个平衡解决方案。