您的位置:首页 > 编程语言 > Go语言

mongoose 相关操作

2016-06-16 16:11 477 查看
var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/part10');

var BookSchema = new mongoose.Schema({
name: String,
isbn: Number
});

// 静态方法
BookSchema.statics.findByISBN = function(isbn, cb){
this.findOne({isbn: isbn}, function(err, doc){
cb(err, doc);
});
};

// 实例方法
BookSchema.methods.print = function(){
console.log('Book Information:');
console.log('\tTitle:', this.name);
console.log('\tISBN:', this.isbn);
};

var Book = mongoose.model('Book', BookSchema);

var book = new Book({
name: 'MEAN Web Development',
isbn: 9787100
});

book.save(function(err){
if(err) {
return console.log('save book failed', err);
}

Book.findByISBN(9787100, function(err, doc){
console.log('findByISBN, err, doc:', err, doc);
});

book.print();
});

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/part10');

var OrderSchema = new mongoose.Schema({
count: {
type: Number,
// 是否必须的校验器
required: true,
// 数字类型的最大值校验器
max: 1000,
// 数字类型的最小值校验器
min: 10
},
status: {
type: String,
// 设置字符串的可选值
enum: ['created', 'sucess', 'failed']
},
desc: {
type: String,
// 使用正则表达式来校验字符串的内容
match: /book/g,
// 自定义的验证器,如果通过验证返回 true,没有通过则返回 false
validate: function(desc) {
return desc.length >= 10;
}
}
});

var Order = mongoose.model('Order', OrderSchema);

var order = new Order();
order.count = 10;
order.status = 'created';
order.desc = 'this is a great book';
order.save(function(err){

if(err) {
return console.log('save failed:', err);
}

console.log('save success');
});


var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/part10');

var ResellerSchema = new mongoose.Schema({
address: String
});

// 普通的中间件
ResellerSchema.post('save', function(next){
console.log('this is ResellerSchema post save middleware');
next();
});

// 可以并行执行的中间件
ResellerSchema.pre('save', true, function(next, done){
console.log('this is ResellerSchema pre save middleware');
next();
// done 需要传给并行执行的方法或者过程,当该并行执行的方法或过程完成执行之后,调用 done
// 以通知 mongoose 执行完成。
done();
});

var Reseller = mongoose.model('Reseller', ResellerSchema);

var reseller = new Reseller({
address: '101st, People Read'
});

reseller.save();

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/part10');

var User = mongoose.model('User', {
username: String
});

var News = mongoose.model('News', {
title: String,
// DBRef 的定义
author: {
type: mongoose.Schema.ObjectId,
ref: 'User'
}
});

var user = new User({
username: 'Sid'
});

var news = new News({
title: 'Congratulation!',
author: user
});

user.save(function(err){
if(err) {
return console.log('save user failed:', err);
}

news.save(function(err){
if(err) {
return console.log('save news failed:', err);
}

// 使用 populate() 方法填充数据
News.findOne().populate('author').exec(function(err, doc){
console.log('after populate: ', err, doc);
});
});
})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: