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

Mongoose学习(1)

2016-05-15 22:11 453 查看
1、
Schema
:一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

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

Entity
:由
Model
创建的实体,他的操作也会影响数据库

2、
Schema
Model
Entity
的关系请牢记,
Schema
生成
Model
Model
创造
Entity
Model
Entity
都可对数据库操作造成影响,但
Model
Entity
更具操作性。

3、下面我们来一段代码理解一下

varUserSchema=newmongoose.Schema({ username:String,//定义一个属性name,类型为String password:String }); varUserModel=db.model('user',UserSchema); varuserEntity=newUserModel({name:'lsg'});

 

4、创建数据库连接

varmongoose=require('mongoose');//引用mongoose模块 vardb=mongoose.createConnection('127.0.0.1','test');//创建一个数据库连接

  

5、打开数据库

db.on('error',console.error.bind(console,'连接错误:')); db.once('open',function(){ //一次打开记录 });

  

6、接下来我就完成一个CRUD(create,read,update,delete)的例子

7、数据更新,这里我们有很多方法,接下来我介绍一种是常用的

UserModel.findById(id,function(err,user){ user.username='lsg'; user.password='123456'; user.save(function(err,data){}); });

8、查询,分为直接查询和链式查询

UserModel.findOne({'username':'lsg'},'someselect',function(err,user){ //如果err==null,则user就能取到数据 //someselect要返回的字段如usernamepassword });

链式的我直接上官方列子http://mongoosejs.com/docs/2.7.x/docs/finding-documents.html

Model .where('age').gte(25) .where('tags').in(['movie','music','art']) .select('name','age','tags') .skip(20) .limit(10) .asc('age') .slaveOk() .hint({age:1,name:1}) .exec(callback);

  

9、数据新增,同样只介绍一种

varuser=newUserModel({username:'lsg',password:'123456'}); user.save(callback);

10、删除

UserModel.remove({ username:'lsg' },function(err,r){ if(err)returncallback&&callback(err); returncallback&&callback(null); })


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: