Mongoose Schematype.checkRequired()函数

Mongoose Schematype.checkRequired()函数

Schematype.checkRequired() 方法 是Mongoose API的一部分,用于设置和获取 checkRequired() 函数。它可以覆盖required属性的验证器,用于跳过required检查。让我们通过示例来了解 Schematype.checkRequired() 方法。

语法:

Schema.Types.String.checkRequired( function );

参数: 这个方法接受一个单一的参数,如上所述,并在下面进行描述:

  • function: 这是执行验证操作的函数。

返回值: 该方法返回输入或设置函数。

设置Node.js应用:

步骤1: 使用以下命令创建一个Node.js应用:

npm init

步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块:

npm install mongoose

项目结构: 项目的结构将会如下所示:

Mongoose Schematype.checkRequired()函数

示例1: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在userSchema上定义了模型,有两个列或字段“name”和“age”。我们还定义了一个getter函数checkRequired(),它始终返回true。这使得在name字段是空字符串的情况下,仍然可以创建新的文档,即使它是一个必需的字段。

文件名:app.js

// Require mongoose module 
const mongoose = require("mongoose"); 
  
// Set Up the Database connection 
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", { 
    useNewUrlParser: true, 
    useUnifiedTopology: true, 
}); 
  
const userSchema = new mongoose.Schema({ 
    name: { 
        type: String, 
        get: mongoose 
            .SchemaTypes 
            .String 
            .checkRequired(value => { return true }), 
        required: true
    }, 
    age: { 
        type: Number 
    }, 
}); 
  
const User = mongoose.model('User', userSchema); 
  
User.create({ name: '', age: 25 }).then(user => { 
    console.log(user) 
})

运行程序的步骤: 在项目的根目录下执行以下命令来运行应用程序:

node app.js

输出:

{
  name: '',
  age: 25,
  _id: new ObjectId("6384a8ec353b83429bbdf0df"),
  __v: 0
}

使用Robo3T GUI工具的数据库GUI表示:

Mongoose Schematype.checkRequired()函数

示例2: 在这个示例中,我们使用mongoose建立了一个数据库连接,并定义了一个userSchema模型,有两个列或字段“name”和“age”。我们还定义了一个setter函数checkRequired(),它有条件地检查name属性的值是否为空。如果不为空,则返回“Default Value”或提供的值。

文件名:app.js

// Require mongoose module 
const mongoose = require("mongoose"); 
  
// Set Up the Database connection 
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", { 
    useNewUrlParser: true, 
    useUnifiedTopology: true, 
}); 
  
const userSchema = new mongoose.Schema({ 
    name: { 
        type: String, 
        set: mongoose 
  
            .SchemaTypes 
            .String 
            .checkRequired(value => { 
                return (value.length <= 0 ? 'Default Value' : value) 
            }), 
        required: true
    }, 
    age: { 
        type: Number 
    }, 
}); 
  
const User = mongoose.model('User', userSchema); 
  
const user = new User({ name: '', age: 28 }) 
user.save() 
console.log(user)

程序运行步骤: 从项目的根目录中执行以下命令以运行应用程序:

node app.js

输出:

{
  name: 'Default Value',
  age: 28,
  _id: new ObjectId("6384a5ababbb876122181833")
}

使用Robo3T GUI工具的数据库的GUI表示:

Mongoose Schematype.checkRequired()函数

示例 3: 在这个示例中,我们还定义了一个名为 checkRequired() 的setter函数,它会有条件地检查name属性的值是否为空,如果为空则返回“默认值”,如果不为空则返回提供的值。在这个示例中,我们创建了一个名为“User3”的新文档,并且可以在数据库中看到它。

文件名:app.js

// Require mongoose module 
const mongoose = require("mongoose"); 
  
// Set Up the Database connection 
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", { 
    useNewUrlParser: true, 
    useUnifiedTopology: true, 
}); 
  
const userSchema = new mongoose.Schema({ 
    name: { 
        type: String, 
        set: mongoose 
            .SchemaTypes 
            .String 
            .checkRequired(value => { 
                return (value.length <= 0 ? 'Default Value' : value) 
            }), 
        required: true
    }, 
    age: { 
        type: Number 
    }, 
}); 
  
const User = mongoose.model('User', userSchema); 
  
const user = new User({ name: 'User3', age: 30 }) 
user.save() 
console.log(user)

运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序:

node app.js

输出:

{
 name: 'Default Value',
 age: 28,
 _id: new ObjectId("6384a5ababbb876122181833")
}

使用Robo3T GUI工具的数据库的GUI表示:

Mongoose Schematype.checkRequired()函数

参考: https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-checkRequired

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程