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

mongoose学习文档

2016-07-20 20:06 288 查看

名词解释

Schema
: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

Model
: 由
Schema
发布生成的模型,具有抽象属性和行为的数据库操作对

来自cnode社区

1.创建一个本地数据库并连接:

var mongoose = require('mongoose');            //获取mongoose模块
mongoose.connect('mongodb://localhost/nodejs');     //使用mongoose对象的connect方法连接数据库nodejs


2.定义数据库文档类型:

  对于mongoose,一切行为都要源自
Schema
(模型),所以下面,就是要声明和定义Schema了:

var Schema = mongoose.Schema;
var MovieSchema = new Schema({
name : String,
alias: [String],
publish: Date,
create_date:{type: Date,default: Date.now},
image:{
coverSmall: String,
coverBig:String
},
source:[{
source: String,
link:String,
swfLink:String,
quality:String,
version:String,
lang:String,
subtitle:String,
create_date:{type: Date,default: Date.now}
}]
});


  变量名可以随便取,这里将mongoose的属性Schema赋值给Schema变量,然后通过Schema新建一个对象,这个对象决定了数据库中文档的形状(格式)

3.将Schema发布为Model:

var Movie = mongoose.model("Movie",MovieSchema);
var MovieDAO = function(){};
module.exports = new MovieDAO();


  定义一个变量接收发布的model,参数里面的Movie是数据库里面的集合(例如上面数据库为nodejs,这里movie就是nodejs里面的集合),不过貌似mongoose不区分大小写,这里是Movie,而查看数据库则是movie。

  第二行代码定义一个空对象,第三行代码引出这个空对象的一个实例,下面就要给这个空对象添加方法了。

4.给model添加增、改、查

1)新增

  新增一个文档,我们必须先实例化一个文档(上面的Movie):

MovieDAO.prototype.save = function(obj, callback) {
var instance = new Movie(obj);
instance.save(function(err){
callback(err);
});
};


  save方法传入一个obj对象,这个对象用于实例化Movie,实例化的对象赋值给instance,这样instance就是一个真实存在的文档,也拥有了Movie的所有方法,接着就可以使用save(官方API,我们只需关心回调函数就可以了)来插入文档了。

2)查询

MovieDAO.prototype.findByName = function(name,callback){
Movie.findOne({name:name},function(err,obj){
callback(err,obj);
});
};


  这里以name字段来查询

3)更新

MovieDAO.prototype.updateData = function(name,set,callback){
Movie.update({name:name},set,function(err){
callback(err);
});
};


  这里以name字段作为查询条件,以set作为更新数据,如{name:"shenzhen"}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: