mongoose.Schema() 和 new mongoose.Schema() 有啥区别?

Posted

技术标签:

【中文标题】mongoose.Schema() 和 new mongoose.Schema() 有啥区别?【英文标题】:What is the difference between mongoose.Schema() and new mongoose.Schema()?mongoose.Schema() 和 new mongoose.Schema() 有什么区别? 【发布时间】:2020-05-09 06:10:46 【问题描述】:

mongoose.Schema()new mongoose.Schema() 有什么区别?

我使用了这两种标准,而且我认为两者都做同样的工作。有什么影响吗?

【问题讨论】:

你确定两者都做同样的工作吗?我不知道。也只是问问。他们可能都做同样的工作。 new 关键字的意思是 instantiate a new object 虽然 重复***.com/questions/39719454/… 这能回答你的问题吗? Creating Mongoose Schemas with or without 'new' keyword? 【参考方案1】:

查看docs,应该始终使用new 关键字调用它,因为Schema 是一个构造函数。

查看source code,如果您尝试在没有new 关键字的情况下使用它,它将返回一个新分配的对象。

两者都可以,但我只会使用第一个,因为它是正确的方法。 遵循标准约定将使您的代码更易于阅读;不仅对其他人,而且当您在 6 个月后回到它时,对您也是如此。

【讨论】:

以上是关于mongoose.Schema() 和 new mongoose.Schema() 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

如何实现 type:(new mongoose.Schema) as Array

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

Mongoose .pre('save') 不会触发

从另一个 mongoose.Schema 调用 mongoose.Schema 中的静态

Mongoose 说我有 46 条记录,mongoDB 说我有 0 条记录?

Mongoose 说我有 46 条记录,mongoDB 说我有 0 条记录?