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();
});
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); }); }); })
相关文章推荐
- django orm 操作
- Diy Win7 OEMlogo
- django view call model methods
- golang学习之奇葩的time format
- mongoose 模式使用
- Django -model的字段类型清单
- Django快速搭建Blog
- django URL模式浅析
- golang map to struct
- go性能调优2
- go性能调优1
- 基于Django的web开发
- 和lock一起学beego 博客系统开发为例(三)
- 怎么在windows下给GO执行程序添加ico
- LightOJ 1051 Good or Bad (递推DP)
- 2016 Google hosts 持续更新【更新于:2016-06-15】
- Django学习笔记:为Model添加Action
- 如何压缩Golang 编译出的可执行文件大小
- Go 的基本类型有Basic types
- select golang