mongoose学习笔记3之Models
2017-01-14 本文已影响37人
打铁大师
假设以下代码都运行在
let mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test');
let db = mongoose.connection;
db.on('error', () => {
console.error('链接失败');
});
db.once('open', function () {
//下面讲到的所有代码都在这里运行
});
Model
模型是从我们的模式定义编译的构造函数。这些模型的实例表示可以从我们的数据库保存和检索的文档。来自数据库的所有文档创建和返回都由这些模型处理。
编译你的第一个model
let schema = new mongoose.Schema({name:'string'});
let Tank = mongoose.model('Tank',schema);
构造文档
文档是我们模型的实例。创建它们并保存到数据库很容易:
let Tank = mongoose.model('Tank',schema);
//创建文档
let small = new Tank({name:"nick"});
//保存文档
small.save(function(err){
if(err){
return console.error(err);
}
})
或者
let Schema = mongoose.Schema;
let schema = new Schema({
name:String
});
let Person = mongoose.model('Person',schema);
//创建并保存文档
Person.create({name:'noshower'},function(err,man){
if(err){
return console.error(err);
}
//此时成功保存到数据库
});
Querying (查询)
使用Mongoose查找文档很容易,Mongoose支持MongoDB的丰富的查询语法。文档可以使用每个模型的方法查找。
Tank.find({ size: 'small' }).where('createdDate').gt(oneYearAgo).exec(callback);
Removing( 删除)
模型有一个静态的方法--remvoe,可以用它来删除所有匹配的文档。
Person.remove({name:"noshower"},function(err){
if(err){
return console.error(err);
}
//删除成功
})
Updating(更新)
每个模型都有自己的更新方法,用于修改数据库中的文档,而不会将其返回到应用程序。