Mongoose API 的 Mongoose SchemaType.prototype.required() 方法用于 SchemaType 对象。它允许我们在模式字段上设置验证器。使用此方法,我们可以为 SchemaType 字段设置验证器。让我们通过一个例子来理解required()方法。
用法:
schemaTypeObject.required( <boolean/function/object> );
Parameters: 该方法接受两个参数,如下所述:
- required: 它用于启用或禁用字段所需的属性。
- message: 它用于指定错误消息。
返回值:此方法返回SchemaType对象。
设置 Node.js Mongoose 模块:
步骤 1:使用以下命令创建 Node.js 应用程序:
npm init
步骤 2:创建 NodeJS 应用程序后,使用以下命令安装所需的模块:
npm install mongoose
项目结构: 项目结构将如下所示:
示例 1:下面的示例说明了 Mongoose SchemaType 的函数required()方法。在此示例中,我们定义了具有三个属性或字段 name、age 和 rollNumber 的 StudentSchema。在最后,名字创建 StudentModel 对象时,字段是必需的并且必须具有某些值。这就是为什么我们收到验证错误,因为我们没有提供值名字创建 StudentModel 对象时的字段。
文件名:app.js
Javascript
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const studentSchema = new mongoose.Schema({
name: { type: String, required: true },
age: Number,
rollNumber: { type: Number }
});
const StudentModel =
connectionObject.model('Student', studentSchema);
const doc = new StudentModel({ age: 20, rollNumber: 101 });
doc.save((result => {
console.log(result)
}))
运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
Error: Student validation failed: name: Path `name` is required.
示例 2:下面的示例说明了 Mongoose SchemaType required() 方法的函数。在此示例中,我们定义了具有三个属性或字段 name、age 和 rollNumber 的 StudentSchema。最后,在创建 StudentModel 对象时,name 字段和 rollNumber 字段是必需的并且强制具有某些值。
文件名:app.js
Javascript
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const studentSchema = new mongoose.Schema({
name: { type: String, required: true },
age: Number,
rollNumber: {
type: Number, required: (() => {
return this.age >= 18
})
}
});
const StudentModel =
connectionObject.model('Student', studentSchema);
const document = new StudentModel({ name: 'Student 1',
age: 22, rollNumber: 101 });
document.save().then(document => {
console.log(document);
})
运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
{ name: 'Student 1', age: 22, rollNumber: 101, _id: new ObjectId("63a3630fc9bec4d7e98de925"), __v: 0 }
示例 3:下面的示例说明了 Mongoose SchemaType required() 方法的函数。在此示例中,我们定义了具有三个属性或字段 name、age 和 rollNumber 的 StudentSchema。最后,name 字段始终是必需的,但 rollNumber 字段是必需的,并且在创建 StudentModel 对象时必须有条件地具有某些值。
文件名:app.js
Javascript
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const studentSchema = new mongoose.Schema({
name: { type: String, required: true },
age: Number,
rollNumber: {
type: Number, required: (() => {
return this.age >= 18
})
}
});
const StudentModel =
connectionObject.model('Student', studentSchema);
const document2 =
new StudentModel({ name: 'Student 2', age: 16 });
document2.save().then(document2 => {
console.log(document2);
})
运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
{ name: 'Student 2', age: 16, _id: new ObjectId("63a36373c69cbe92435273c0"), __v: 0 }
参考:https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-required
相关用法
- Mongoose SchemaType.prototype.ref()用法及代码示例
- Mongoose SchemaType.prototype.default()用法及代码示例
- Mongoose SchemaType.prototype.immutable()用法及代码示例
- Mongoose SchemaType.prototype.unique()用法及代码示例
- Mongoose SchemaType.prototype.validate()用法及代码示例
- Mongoose SchemaType.prototype.get()用法及代码示例
- Mongoose SchemaType.prototype.text()用法及代码示例
- Mongoose SchemaType.prototype.set()用法及代码示例
- Mongoose SchemaType.prototype.select()用法及代码示例
- Mongoose SchemaType.prototype.transform()用法及代码示例
- Mongoose SchemaType.prototype.index()用法及代码示例
- Mongoose Schema Connection.prototype.asPromise()用法及代码示例
- Mongoose Schema Connection.prototype.dropCollection()用法及代码示例
- Mongoose Schema.prototype.virtual()用法及代码示例
- Mongoose Schema Connection.prototype.set()用法及代码示例
- Mongoose Schema Connection.prototype.dropDatabase()用法及代码示例
- Mongoose Schema.prototype.plugin()用法及代码示例
- Mongoose Schema Connection.prototype.close()用法及代码示例
- Mongoose Schema.prototype.static()用法及代码示例
- Mongoose Schema Connection.prototype.useDb()用法及代码示例
- Mongoose Schema.prototype.pre()用法及代码示例
- Mongoose countDocuments()用法及代码示例
- Mongoose deleteMany()用法及代码示例
- Mongoose deleteOne()用法及代码示例
- Mongoose estimatedDocumentCount()用法及代码示例
注:本文由纯净天空筛选整理自sakshio0hoj大神的英文原创作品 Mongoose SchemaType.prototype.required() API。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。