mongoose 之schema 的繼承

        這篇博文是我想要的開發狀況獲得了實現,提出來分享下,mongoose的schema複用功能,有兩種狀況能夠解決。
jquery

        第一,公用體寫成基本數據對象組,而後繼承,須要安裝一個依賴包,固然也能夠使用jquery的extendnpm

npm install mongoose-schema-extend

        如下是如何使用的代碼:
mongoose

var mongoose = require('../libs/mongo'),
    Schema = mongoose.Schema,
    extend = require('mongoose-schema-extend');

var Item = new Schema({
    userid: Number,
    remarke: String
}, {_id: false});

var GroupItem = Item.extend({
    manager: Number
})

//羣組基本信息
var BaseGroup = new Schema({
    name: String,
    groupid: {type: Number,unique:true, index: 1},
    type:String,
    topid:Number,//userid,companyid,etc.
    icon: String,
    number: [GroupItem],
    createat: {type: Date, default: Date.now},
    maxuser: {type: Number, default: 1000},
    verify: Boolean,
    notice: String
}, {collection: 'groups', versionKey:false});
//多渠道用途羣組,並支持多級分組
var ChannelGroup = BaseGroup.extend({
    Group:Schema.Types.Mixed,
    channeltype: String,
    channelname: String
});
//用戶建立的羣組
var Group = BaseGroup.extend({
    classify:String
});

        第二,把全部的字段融合到一塊兒,存儲時根據須要給請求哪些字段須要存入,這種方法就是不給字段賦值,讓其爲空,就能夠達到,可是若是某些字段要設置默認值的時候恐怕就不方便了,老是會存入庫中去。
ui

相關文章
相關標籤/搜索