schema model entity
schema 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力,但是这是必须的,就类似 申明你的数据库对应表的结构 有哪些字段 ,每一个字段的属性 是否唯一等等。model 由Schema发布生成的模型,具有抽象属性和行为的数据库操作,通过model模型 对对应的表进行增删查改等操作。entity 由Model创建的实体,他的操作也会影响数据库 (同model) /** * Created by Administrator on 2017/5/3. */ var mongoose = require('mongoose'); var Schema = mongoose.Schema; var config = require('../config/default'); mongoose.connect(config.mongodb); var db = mongoose.connection; db.on('error', function (err) { console.log('connect error'); }); // db.once('open',function () { // console.log('connect success !'); // // }); db.on('open', function (cb) { console.log('connect success !'); }); //Schema 结构 var userSchema = new Schema({ name: String, password: String, nickname: {type: String, default: 'shop'}, date: {type: Date, default: Date.now}, }); //得到用户model 对应的是mongodb里面的数据库shop里面的users表结构 var userModel = mongoose.model('users', userSchema); //entity var user = { name:'testName1', password:'123456789000000', }; //根据实际数据新建一个实体类 这个类也可以进行对应表的所有操作 增删查改 //一般不这么用 var userEntity = new userModel(user); // userEntity.save(function (err) { // if(err){ // console.log(err) // }else{ // console.log("save success"); // } // db.close(); // }); // 异步执行 find 先于 save执行完毕 userModel.find(function (err,arr) { console.log(arr); }); // 即使 在相同条件下 依旧返回最开始的一条数据 userModel.findOne({name:'testName'},function (err,user) { console.log(user); }); var conditions = {name:'testName'}; var update = {$set : {nickname : 'shop_update'}}; userModel.update(conditions,update,{upsert:true,overwrite:true,multi:true},function (err,num,rawnum) { if(err){ console.log(err); }else{ console.log("update ok"); } console.log(rawnum);//受影响的行数 db.close(); }); //基于model的增删查改 userModel.create(user,function (err) { if(err){ console.log('create fail : '+err); }else{ console.log('create user success'); } }); // 删除 操作 删除所有符合条件的文件 userModel.remove({name:"testName"},function (err) { if(err){ console.log(err); }else{ console.log("update ok"); } }); exports = mongoose.model('users',userSchema);