mongoose Schema 中的字段可以都有哪些选项?

Posted

技术标签:

【中文标题】mongoose Schema 中的字段可以都有哪些选项?【英文标题】:What are all the options that a field can have in a mongoose Schema?mongoose Schema 中的字段可以有哪些选项? 【发布时间】:2021-10-06 10:41:30 【问题描述】:

所以基本上我正在使用mongoosemongodb 合作。我想知道一个字段在mongoose 模式中可以拥有的所有潜在选项。例如,用户架构:

const UserSchema = new Schema(
   
      username: 
         required: true,
         unique: true,
      ,
      email: 
         required: true,
         unique: true,
      ,
   ,
   
      timestamps: true,
   
);

这里架构的字段是用户名和电子邮件。这些字段的选项是必需的并且是唯一的。在mongoose 架构中,一个字段可以有哪些ALL选项?我在mongoose 文档中找到了架构选项,但它谈到了autoIndex 以及与我的问题无关的所有其他内容。所以我的问题是,一个字段在mongoose 模式中可以拥有的所有选项是什么。谢谢!

【问题讨论】:

【参考方案1】:

好吧,所以我不知道所有选项一直让我感到厌烦,所以我一直在搜索,最终我偶然发现了回答我问题的文档部分。因此,对于也有同样问题的任何人,请转到此链接:https://mongoosejs.com/docs/schematypes.html。对“所有模式类型”执行 ctrl f,您会找到它们:)

【讨论】:

【参考方案2】:

我相信这里提供了所有架构选项:https://mongoosejs.com/docs/api/schematypeoptions.html

万一网站宕机,列表如下:

cast
default
immutable
index
ref
required
select
sparse
text
transform
type
unique
validate

如您所见,您给定的两个选项也都在那里。我看到的一个问题是该页面中提供的示例数量。我检查了一些其他来源,发现:https://github.com/Automattic/mongoose/blob/master/lib/schematype.js

您需要做的是搜索一个字段(比如说,prototype.selectprototype.unique),找到类似这样的内容:SchemaType.prototype.select = function select(val) 并检查上面的评论。从我所见,只有type 似乎没有任何例子,不知道为什么。

【讨论】:

以上是关于mongoose Schema 中的字段可以都有哪些选项?的主要内容,如果未能解决你的问题,请参考以下文章

访问 mongoose.Schema.methods 中的“select: false”字段

从 Mongoose 获取模式中设置为唯一的字段

使用 Mongoose Schema 防止字段修改

如何在不覆盖当前数据的情况下更新 Mongoose 中的混合类型字段?

如何填充 Mongoose 数组中的字段?

使用 TypeScript 在 mongoose.Schema 的 `required` 字段中使用函数