Mongoose 5.x.x:创建架构需要“新”吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongoose 5.x.x:创建架构需要“新”吗?相关的知识,希望对你有一定的参考价值。

Mongoose 5.0.15文档的“快速入门”部分(包括其网站的主要登录页面)在创建架构时未显示new关键字。当我单击文档的Schemas部分时,它会显示new关键字。

我想知道在5.x.x中是否需要new,因为文档超级不一致?它用于4.x.x.

谢谢

var kittySchema = mongoose.Schema({
  name: String
})

VS

var kittySchema = new mongoose.Schema({
  name: String
})
答案

通常,new是必需的,因为没有它你只需要调用Schema()函数,而不是构造一个新的Schema实例(后者是你真正需要的)。

但是如果你看一下schema.js的source,他们无论如何都会返回一个新实例,即使你将Schema()称为直接函数(即没有new)。所以你是否使用new没有区别。无论哪种方式,您都可以获得新的Schema对象。

以上是关于Mongoose 5.x.x:创建架构需要“新”吗?的主要内容,如果未能解决你的问题,请参考以下文章

创建新模式对象后,Mongoose 引用的字段丢失

更新架构声明后,Mongoose 不会更新新字段

更新架构声明后,Mongoose 不会更新新字段

E11000 MongoDB/Mongoose 重复键错误

创建添加到数组字段的新子项

创建新对象时,猫鼬中的值不会增加