本文整理汇总了TypeScript中mongoose.Schema.plugin方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Schema.plugin方法的具体用法?TypeScript Schema.plugin怎么用?TypeScript Schema.plugin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mongoose.Schema
的用法示例。
在下文中一共展示了Schema.plugin方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: configureTaskModel
export function configureTaskModel(mongoose: Mongoose) {
var taskSchema = new Schema({
title: String,
description: String,
assigned_to: {type: String, ref: 'User'}
});
taskSchema.method('replaceAttributes', function(attributes) {
this.title = attributes.title;
this.description = attributes.description;
this.assigned_to = MongooseUtils.id(attributes.assigned_to);
});
taskSchema.method('updateAttributes', function(attributes) {
if(attributes.title) {
this.title = attributes.title;
}
if(attributes.description) {
this.description = attributes.description;
}
if(attributes.assigned_to) {
this.assigned_to = attributes.assigned_to;
}
});
taskSchema.plugin(timestampsPlugin);
taskSchema.plugin(promisifyPlugin);
TaskModel = mongoose.model<ITaskDocument>('Task', taskSchema);
}
示例2: configureProjectModel
export function configureProjectModel(mongoose: Mongoose) {
var projectSchema = new Schema({
title: String,
description: String
});
projectSchema.method('replaceAttributes', function(attributes) {
this.title = attributes.title;
this.description = attributes.description;
});
projectSchema.method('updateAttributes', function(attributes) {
if(attributes.title) {
this.title = attributes.title;
}
if(attributes.description) {
this.description = attributes.description;
}
});
projectSchema.plugin(timestampsPlugin);
projectSchema.plugin(promisifyPlugin);
ProjectModel = mongoose.model<IProjectDocument>('Project', projectSchema);
}
示例3: configureStoryModel
export function configureStoryModel(mongoose: Mongoose) {
var storySchema = new Schema({
title: String,
description: String,
project: {type: String, ref: 'Project'},
sprint: {type: String, ref: 'Sprint'}
});
storySchema.method('replaceAttributes', function(attributes) {
this.title = attributes.title;
this.description = attributes.description;
this.project = MongooseUtils.id(attributes.project);
this.sprint = MongooseUtils.id(attributes.sprint);
});
storySchema.method('updateAttributes', function(attributes) {
if(attributes.title) {
this.title = attributes.title;
}
if(attributes.description) {
this.description = attributes.description;
}
});
storySchema.plugin(timestampsPlugin);
storySchema.plugin(promisifyPlugin);
StoryModel = mongoose.model<IStoryDocument>('Story', storySchema);
}
示例4: configureSprintModel
export function configureSprintModel(mongoose: Mongoose) {
var sprintSchema = new Schema({
from_date: Date,
to_date: Date,
project: {type: String, ref: 'Project'}
});
sprintSchema.method('replaceAttributes', function(attributes) {
this.from_date = attributes.from_date;
this.to_date = attributes.to_date;
this.project = MongooseUtils.id(attributes.project);
});
sprintSchema.method('updateAttributes', function(attributes) {
if(attributes.from_date) {
this.from_date = attributes.from_date;
}
if(attributes.to_date) {
this.to_date = attributes.to_date;
}
if(attributes.project) {
this.project = MongooseUtils.id(attributes.project);
}
});
sprintSchema.plugin(timestampsPlugin);
sprintSchema.plugin(promisifyPlugin);
SprintModel = mongoose.model<ISprintDocument>('Sprint', sprintSchema);
}
示例5: configureStoryModel
export function configureStoryModel(mongoose: Mongoose) {
var storySchema = new Schema({
title: String,
description: String
});
storySchema.method('replaceAttributes', function(attributes) {
this.title = attributes.title;
this.description = attributes.description;
});
storySchema.method('updateAttributes', function(attributes) {
if(attributes.title) {
this.title = attributes.title;
}
if(attributes.description) {
this.description = attributes.description;
}
});
storySchema.plugin(timestampsPlugin);
storySchema.plugin(promisifyPlugin);
StoryModel = mongoose.model<IStoryDocument>('Story', storySchema);
}
示例6: configureUserModel
export function configureUserModel(mongoose: Mongoose) {
var userSchema = new Schema({
firstName: String,
lastName: String,
email: String,
hashedPassword: String,
type: Number
});
userSchema.plugin(timestampsPlugin);
userSchema.plugin(promisifyPlugin);
userSchema.method('replaceAttributes', function(attributes) {
throw new Error("Not implemented");
});
userSchema.method('updateAttributes', function(attributes) {
throw new Error("Not implemented");
});
userSchema.method('hashPassword', function(password) {
this.hashedPassword = md5(password);
});
userSchema.method('checkPassword', function(password) {
return this.hashedPassword === md5(password);
});
const md5 = (password) => crypto.createHash('md5').update('"'+password+'"').digest('hex');
UserModel = mongoose.model<IUserDocument>('User', userSchema);
}
示例7: configureCategoryModel
export function configureCategoryModel(mongoose: Mongoose) {
let categoryImageSchema = {
src: String,
width: Number,
height: Number,
kind: {type: String, enum: ['cover', 'main']},
};
let categorySchema = new Schema({
title: String,
slug: String,
status: String,
description: String,
images: [categoryImageSchema]
});
categorySchema.method('replaceAttributes', function(attributes) {
this.title = attributes.title;
this.slug = attributes.slug;
this.status = attributes.status;
this.description = attributes.description;
this.images = attributes.images;
});
categorySchema.method('updateAttributes', function(attributes) {
if(attributes.title) {
this.title = attributes.title;
}
if(attributes.slug) {
this.slug = attributes.slug;
}
if(attributes.status) {
this.status = attributes.status;
}
if(attributes.description) {
this.description = attributes.description;
}
if(attributes.cover_image) {
this.cover_image = this.cover_image.concat(attributes.cover_image);
}
});
categorySchema.plugin(timestampsPlugin);
categorySchema.plugin(promisifyPlugin);
CategoryModel = mongoose.model<ICategoryDocument>('Category', categorySchema);
}
示例8: configureShopModel
export function configureShopModel(mongoose: Mongoose) {
let addressSchema = {
address: String,
address2: String,
city:String,
state: String,
country: String,
country_code: String,
zip: String
};
let shopSchema = new Schema({
name: String,
published: Boolean,
config: {
address: addressSchema,
currency_code: String
},
creator_id: {type: Schema.Types.ObjectId, ref: 'User', required: true}
});
shopSchema.method('replaceAttributes', function(attributes) {
this.published = attributes.published;
this.config = attributes.config;
});
shopSchema.method('updateAttributes', function(attributes) {
if(attributes.published) {
this.published = attributes.published;
}
if(attributes.config) {
this.config = attributes.config;
}
});
shopSchema.method('setCreator', function(creator) {
this.creator_id = getDocumentId(creator);
});
shopSchema.plugin(timestampsPlugin);
shopSchema.plugin(promisifyPlugin);
ShopModel = mongoose.model<IShopDocument>('Shop', shopSchema);
}
示例9: beforeAll
beforeAll(spec(async() => {
mockgoose.helper.setDbVersion('3.2.17');
await new Promise(resolve => {
mockgoose.prepareStorage().then(() => {
conn = mongoose.connect('mongodb://mongodb:5672', { useMongoClient: true }, resolve);
});
});
const testRecommitSchema = new mongoose.Schema({ name: String, opts: mongoose.Schema.Types.Mixed});
testRecommitSchema.plugin(plugin);
TestRecommit = mongoose.model<ITestRecommit>('TestRecommit', testRecommitSchema);
Transaction.initialize(conn);
}), 180000);