• 用mongoose实现mongodb增删改查


    //用户  
    var mongoose = require("mongoose"),
        setting = require("./setting");  
    
    //配置连接数据库方法    
    var connect = function(){
        //mongoose.connect('mongodb://localhost/test');
        mongoose.connect("mongodb://" + setting.host +"/"+ setting.db);
        // db = mongoose.createConnection("localhost","test");
        //db.on("error",console.error.bind(console,'连接错误:'))
    }
    
    //连接放在外面就可以多次操作,不然只能操作一次
    connect();
    //关闭数据库连接
    //mongoose.connection.close()
    
    // var  Schema = mongoose.Schema;
    // var  userSchema = new Schema({});
    
    //这种写法有点类似  object = Object();返回的也是对象
    //usersSchema = mongoose.Schema;
    var usersSchema = new mongoose.Schema({  
        name: String,  
        username:String,  
        pwd:String,  
        weibo:String,  
        email:String  
    });
    
    var usersModel = mongoose.model('User', usersSchema);  
    
    function User(user){
        this.name = user.name,  
        this.username = user.username,  
        this.pwd = user.pwd,  
        this.weibo = user.weibo,  
        this.email = user.email    
    };
    
    module.exports = User;  
    
    //储存用户数据  
    User.prototype.save = function(callback){  
        //要存入的用户文档  
        var user = {  
            name:this.name,  
            username:this.username,  
            pwd:this.pwd,  
            weibo:this.weibo,  
            email:this.email  
        };  
        //连接数据库
        //connect();
        //var newUser = usersModel(user);  
        var newUser = new usersModel(user);  
        newUser.save(function(err, user){  
            if(err){  
                return callback && callback(err);  
            }  
            callback && callback(null,user);  
        })  
    };  
    
    
    //获取1条用户数据  
    User.get = function(query,callback){ 
        //连接数据库
        // connect(); 
        usersModel.findOne(query, function (err, user) {  
            if (err) {  
                return callback && callback(err);  
            }  
                callback && callback(null,user);//成功,返回数据  
        });  
    };  
    
    //获取所有的用户数据  
    User.getAll = function(callback){ 
        //连接数据库
        // connect(); 
        usersModel.find(function (err, user) {  
            if (err) {  
                return callback && callback(err);  
            }  
                callback && callback(null,user);//成功,返回数据  
        });  
    }; 
    
    //获取id数据
    User.findById = function(_id,callback){ 
        //连接数据库
        // connect(); 
        usersModel.findById(_id,function (err, user) {  
            if (err) {  
                return callback && callback(err);  
            }  
                callback && callback(null,user);//成功,返回数据  
        });  
    }; 
    
    //删除用户数据   只有状态码{result:{ok:1,n:0},connection:{……},options{……}}
    User.remove = function(query,callback){  
        //连接数据库
        // connect();    
        usersModel.remove(query, function (err, user) {  
            if (err) {  
                return callback && callback(err);  
            }  
                callback && callback(null,user);//成功,返回数据  
        });  
    };  
    
    //获取用户数据   只有状态码{ok:1,nModified:1,n:1}
    User.update = function(query,opt,callback){  
        //连接数据库
        // connect();        
        usersModel.update(query,opt,function (err, user) {  
            if (err) {  
                return callback && callback(err);  
            }  
                callback && callback(null,user);//成功,返回数据  
        });  
    };  
    
    var cat = {
        name: "yoyo77",  
        username:"cwj",   
        pwd:"123456",  
        weibo:"pingfan",  
        email:"pingfan1991110@sina.cn"      
    };
    
    
    var  Cat = new User(cat);
    //保存
    //Cat.save(function(err,user){console.log(user);})
    //User.findById("557683e7297334ac29068af6",function(err,user){console.log(user);});
    
    //查询
    //User.get({name: "yoyo22"},function(err,user){console.log(user)});
    //User.getAll(function(err,user){console.log(user)})
    //mongoose.connection.close();
    
    //删除一条
    //User.remove({name: "yoyo11"},function(err,msg){console.log(msg)});
    //删除所有
    //User.remove(null,function(err,msg){console.log(msg)});
    //User.remove({},function(err,msg){console.log(msg)});
    
    //更新一条数据
    //User.update({name: "yoyo"},{username:"cwj",pwd:"234556",weibo:"kskk"},function(err,msg){console.log(msg)});
  • 相关阅读:
    细菌(disease)
    素数路(prime)
    母亲的牛奶(milk)
    Counting Islands II
    Popular Products
    Binary Watch
    BZOJ 1822[JSOI2010]Frozen Nova 冷冻波
    尝试一下LLJ大佬的理论AC大法
    BZOJ 3626 [LNOI2014]LCA
    BZOJ 3319 黑白树
  • 原文地址:https://www.cnblogs.com/pingfan1990/p/4563431.html
Copyright © 2020-2023  润新知