mogoose的虛擬屬性使用備忘

const mongoose = require('mongoose')

mongoose.connect('mongodb://localhost/test3',function (err) {
    if(!err) mongoose.disconnect()
})
const Schema = mongoose.Schema;

let schema = new Schema({first: String, last: String})

//產(chǎn)生VirtualType對象,并設(shè)置virtual的setter和getter
schema.virtual('fullname')
    //坑:此處不可使用箭頭函數(shù)
    .get(function () {
        return this.first + " " + this.last
    })
    //坑:此處不可使用箭頭函數(shù)
    .set(function (value) {
        this.first = value.split(' ')[0]
        this.last = value.split(' ')[1]
    })

//存入操作,會使用到setter方法
let Customer=mongoose.model('Customer',schema);
Customer.create({fullname:'John Yu'})
    .then(nc=>console.log(nc))

//讀取操作:會使用到getter方法
Customer.findOne({first: 'John'})
    .then(c=>console.log(c.fullname))






最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容