Node.js 猫鼬模式中“必需”的含义是什么?

Node.js 猫鼬模式中“必需”的含义是什么?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在写一个猫鼬模式,我想了解它的属性 这是我的模式: var UserSchema = new Schema({ name: String, username: { type: String, required: true, index: { unique: true }}, password: { type: String, required: true, select: false } }); 为什么没有为'name'声明必需的 为什么必需

我正在写一个猫鼬模式,我想了解它的属性

这是我的模式:

var UserSchema = new Schema({
        name: String,
        username: { type: String, required: true, index: { unique: true }},
        password: { type: String, required: true, select: false }
});
  • 为什么没有为'name'声明
    必需的
  • 为什么
    必需
    声明
  • 什么是
    select
    -true/false-意思
  • 索引
    -应该声明任何原因时

  • 为什么不为'name'声明required-?

    回答:当一个字段必须填写时,在这种情况下,我们会根据需要提及它。所以这里的“名称”不是必填字段或必填字段

    为什么声明“必需”?

    回答:如上所述,当必须填写某个字段时,我们会根据需要提及该字段

    什么是选择-真/假-意味着什么?

    应答:这意味着在获取文档时,默认情况下不会在数据中返回该文档。您可以指定默认情况下是从查询结果中包括还是排除此路径

    当索引-应该声明任何原因时?

    回答:当您经常搜索该字段上的数据时,应该声明索引,因此当您在该字段上创建索引时,它不会在所有集合中搜索该字段,它将使用索引搜索该字段的值,并将很快返回结果


    在这里,它们可以作为项目的模型。因此,required用作验证,index用作该字段的索引

    现在有两种方法

  • 或者将验证放在模式/模型中
  • 或者只需使用
    JS/Jquery
    在前端手动创建表单验证,然后使用long-route
  • 现在回答您的问题

  • 名称
    不是必须填写的。这就是为什么不需要
    的原因
  • 当必须填写该字段的任何值时。然后在模式中使用
    required
  • True/False
    启用或禁用对该字段的验证。如果你使用的是错误的方法,填写该字段根本不是强迫。但是使用
    false
    被认为是一种好的做法
  • 索引是一种特殊的数据结构,用于在
    读取/搜索操作期间提高性能。它提高了操作速度并存储在内存中
    
    每当我们必须验证特定字段时,我们就使用required。 必填项:true表示您必须填写该字段。
    必填项:false表示您可以填写该字段,也可以不填写该字段,但这是一种良好的做法

    如果你读一点mongo和mongoose的文档,然后进行调查,这将是一个好主意。