Mongoose会将多less开销添加到node-mongodb-native驱动程序中?

Mongoose添加到node-mongodb-native驱动程序有多less开销? 如果我只是想在几个集合上有几个结构相似的查询,那么直接用驱动程序写所有东西会更有意义吗? 例如,我需要做如下的事情(用从这里复制的驱动程序语言):

db.collection('test', function(err, collection) { collection.find({'a':1}, function(err, cursor) { *do something* } } 

在那里我只是用variablesreplace'test''a'来保存我正在寻找的实际集合和密钥。

我觉得在这种情况下,直接使用驱动程序写所有东西是有道理的。 是否有任何理由使用mongoose本身? 是否可以忽略的开销,直接考虑使用驱动程序,我是愚蠢的?

最好的,谢谢,
萨米

取决于你的应用程序将会有多大。 如果你只是做一些查询,可能不值得将Mongoose添加到组合中,但是一旦你的应用程序开始增长Mongoose可以帮助保持更好的可维护性。 开发时间通常比处理时间更有价值。

除非你的应用程序要提供大量的同时请求,否则你可能不会注意到性能的差异。

使用Mongoose的另一个好处是,您可以在应用程序中清楚地定义您的模型(包括默认值,validation等),它们都为您的应用程序提供了大量内在的文档,并大大减less了在处理时出现不一致的可能性具有相对非结构化的数据模型。

关系数据库有很多用于定义数据types,默认值,索引等的function,如果您尝试使用不存在的列,则会引发错误。

Mongo消除了大量的开销,但它创造了更多的工作,确保在实现代码中logging和维护一致的数据模型; mongoose使得它更容易。

它还具有很多有用的function,可以检查模型,包括使用严格模式的选项(默认为v3),这意味着您尚未定义的任何值都不会写入数据库,虚拟领域“,例如,可以将名字和姓氏组合成一个string,就好像它存储在数据库中一样(但不是必须的)和索引pipe理。 欲了解更多详情,请参阅指南 。