寫這篇博文是我想要的開發狀況獲得了實現,提出來分享下,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