當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Mongoose SchemaType.prototype.default()用法及代碼示例


Mongoose API 的 Mongoose SchemaType.prototype.default() 方法用於 SchemaType 對象。它允許我們設置模式中字段的默認值。使用此方法,我們可以以文字值或函數的形式向模式中的任何路徑提供默認值。我們提供的值將根據我們提供給特定字段或路徑的類型進行轉換。讓我們通過一個例子來理解default()方法。

用法:

schemaTypeObject.path( <path> ).default( <function/value>);

Parameters: 此方法接受一個參數,如下所述:

  • function/value:它用於指定字段的默認值。

返回值:該方法返回字段設置的默認值,並為SchemaType的字段或路徑設置默認值。

設置 Node.js Mongoose 模塊:

步驟 1:使用以下命令創建 Node.js 應用程序:

npm init

步驟 2:創建 NodeJS 應用程序後,使用以下命令安裝所需的模塊:

npm install mongoose

項目結構: 項目結構將如下所示:

示例 1:下麵的示例說明了 Mongoose SchemaType 的函數default()方法。在此示例中,我們將 StudentSchema 定義為具有三個屬性或字段 name、age 和 rollNumber。我們在 rollNumber 路徑上使用 default() 方法來返回默認值作為隨機整數。最後,我們可以注意到,在創建 Student 模型的新對象時,我們沒有為 rollNumber 字段提供任何值,並且在數據庫中默認值,即隨機整數值反映在 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 },
    age: { type: Number },
    rollNumber: { type: Number },
});
studentSchema.path('rollNumber')
    .default(Math.ceil(Math.random() * 100))
const Student = connectionObject
    .model('Student', studentSchema);
Student.create({ name: 'Student1', age: 20 })
.then(newDocument => {
    console.log(newDocument);
})

運行程序的步驟:要運行應用程序,請從項目的根目錄執行以下命令:

node app.js

輸出:

注意:rollNumber 字段的值可能與您不同,因為我使用的是 random() 方法,該方法在每次執行時都會返回新的整數值。

{
  name: 'Student1',
  age: 20,
  rollNumber: 9,
  _id: new ObjectId("63a40a1065e8951038a391b1"),
  __v: 0
}

使用 Robo3T GUI 工具的數據庫的 GUI 表示。

示例 2:在此示例中,我們使用箭頭函數返回 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 },
    age: { type: Number, default: 18 },
    rollNumber: { type: Number },
});
studentSchema.path('rollNumber').default(() => {
    return 100 + Math.ceil(Math.random() * 100)
})
const Student = connectionObject
    .model('Student', studentSchema);
const newStudent = new Student({ name: 'Student2' });
newStudent.save().then(document => {
    console.log(document);
})

運行程序的步驟:要運行應用程序,請從項目的根目錄執行以下命令:

node app.js

輸出:

{
    name: 'Student2',
    age: 18,
    _id: new ObjectId("63a40c193c8fe434f7effe5a"),
    rollNumber: 176,
    __v: 0
  }

使用 Robo3T GUI 工具的數據庫的 GUI 表示。

參考: https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-default



相關用法


注:本文由純淨天空篩選整理自sakshio0hoj大神的英文原創作品 Mongoose SchemaType.prototype.default() API。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。