mongoose Schema中“required”的含义是什么?

时间:2016-10-05 10:13:38

标签: node.js mongodb mongoose

我正在编写一个mongoose架构,我想了解它的属性。

这是我的架构:

var UserSchema = new Schema({
        name: String,
        username: { type: String, required: true, index: { unique: true }},
        password: { type: String, required: true, select: false }
});
  1. 为什么{name 1}没有声明为'name' - ?
  2. 为什么required宣布?
  3. 什么是required - true / false -means?
  4. select - 应该宣布为什么?

3 个答案:

答案 0 :(得分:7)

为什么不要求'name' - ?

答案:当字段必须填写时,在这种情况下我们会根据需要提及。所以这里" name"不是必填字段或必填字段。

为什么“需要”'声明吗

回答:如上所述,当一个字段必须填写时,那么在这种情况下我们会根据需要提及。

什么是select - true / false -means?

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

Schema options

当索引 - 应该声明为什么?

答案:当您经常在该字段上搜索数据时应声明索引,因此当您在该字段上创建索引时,在该情况下,它不搜索所有集合中的该字段,它将搜索值对于那个使用索引的字段,将很快返回结果。

How indexes work in mongodb

答案 1 :(得分:1)

在这里,这些作为您项目的模型。因此,required用作验证,索引作为该字段的索引

现在您有两种方式

  1. 要么在模式/模型中进行验证
  2. 或者只是使用JS/Jquery然后使用长途路径
  3. 手动为前端的表单创建验证

    现在您的回答

    1. Name并非必须填写。这就是为什么没有required被放在那里。
    2. 当必须填写该字段的任何值时。然后在模式中使用required
    3. True/False启用或禁用该字段的验证用法。如果你使用虚假手段填写该领域根本不是强制性的。但是使用false被认为是一种很好的做法。
    4. 索引是一种特殊的数据结构,用于在read/search操作期间提高性能。它提高了操作速度并存储在内存中。

答案 2 :(得分:0)

无论何时我们必须验证特定字段,因此我们都使用required。 required:true表示您必须填写该字段。 必填:false表示您可能填写或未填写该字段,但这是一个好习惯。