nodejs操作mongodb

首先安装nodejs mongodb

npm  install mongodb


var  mongodb = require('mongodb'),
     http = require('http'),
     url = require('url');
var  server  = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
var  db = new mongodb.Db('mydb', server, {safe:true});

//插入表数据
function insert(tablename,rowInfo,callback){
    db.open(function(err, db){
        if(!err){
            //db.createCollection
            db.createCollection(tablename,{safe:true}, function(err, collection){
                if(!err){
                    collection.insert(rowInfo,{safe:true},function(err, result){
                        if(!err){
                            callback(true);
                        }else{
                            callback(false);
                        }
                    }); 
                }else{
                    console.log(err);
                }
            });
        }else{
            console.log('connect db'+err);
        }
    });
}


function save(tablename,rowInfo,callback){
    db.open(function(err,db){
        if(err)return console.error(err);
        
        console.log('* mongodb connected');
        db.collection(tablename).save(rowInfo,function(err,result){
            callback(result);
            db.close();
        });
    })
}
//修改表数据
function update(tablename,id,rowInfo,callback){
    db.open(function(err, db){
        if(!err){
            db.createCollection(tablename,{safe:true}, function(err, collection){
                if(!err){
                    collection.update(id,rowInfo,{safe:true},function(err, result){
                        if(!err){
                            callback(true);
                        }else{
                            callback(false);
                        }
                    }); 
                }else{
                    console.log(err);
                }
            });
        }else{
            console.log('connect db'+err);
        }
    });
}

//删除表数据
function del(tablename,id,callback){
    db.open(function(err, db){
        if(!err){
            db.collection(tablename,{safe:true}, function(err, collection){
                if(!err){
                    collection.delete(id,{safe:true},function(err, result){
                        if(!err){
                            callback(true);
                        }else{
                            callback(false);
                        }
                    }); 
                }else{
                    console.log(err);
                }
            });
        }else{
            console.log('connect db'+err);
        }
    });
}

//查询表数据
function  find(tablename,callback){
    db.open(function(err, db){
        if(!err){
            db.collection(tablename,{safe:true}, function(err, collection){
                if(!err){
                    collection.find().toArray(function(err, result){
                        if(!err){
                            callback(result);
                        }else{
                            console.log(err);
                        }
                    }); 
                }else{
                    console.log(err);
                }
            });
        }else{
            console.log('connect db'+err);
        }
    });
}

//删除Collection
function dropCollection(tablename,callback){
    db.open(function(err, db){
        if(!err){
            db.dropCollection(tablename,{safe:true},function(err,result){
                if(!err){
                    callback(true);
                }else{
                    callback(false);
                }
            }); 
        }else{
            console.log('connect db'+err);
        }
    });
}

var myres = "";
http.createServer(function(req,res){
    var arg = url.parse(req.url,true).query;
    var pathname = url.parse(req.url).pathname;
    console.log(pathname);
    switch(pathname){
        case '/find':        
            find("tb_user",function(data){
                myres = data;
                console.log(data);
            });
        break;
        case '/insert':
            var rowInfo = {'userID':10008,'userName':'ciwei','password':'123456','age':25};
            insert("tb_user",rowInfo,function(data){
                myres = data;
            });
        break;
        case '/update':
            var id = {"userID":10008};
            var rowInfo = {$set:{"userName":"ciwei88888","password":"123456","age":25}};
            update("tb_user",id,rowInfo,function(data){
                myres = data;
            });
        break;
    }
    
    var str = arg.callback + '(' + JSON.stringify(myres) + ')'
    console.log(str);
    res.end(str);
}).listen(8080,'localhost');
console.log("run on 8080");


更多资料请参见nodejs mongodb官网 http://mongodb.github.io/node-mongodb-native/ 和mongodb官网http://www.mongodb.org/
原文地址:https://www.cnblogs.com/wuxiang/p/4626810.html