• Nodejs开发(2.连接MongoDB)


    一、先配置MongoDB

    Win10下下载那个安装版,zip版的会报却各种DLL,安装在你希望的路径,实在安装错了,就剪切过来也行(本例E:mongodb)。

    然后是配置启动脚本,就是写一个bat文件,双击即可打开,因为那启动命令实在有点长。

    在E:mongodbin下创建一个start.bat文件,写入:

    cd E:mongodbin
    mongod --dbpath=../data --directoryperdb --logpath=../log.log --logappend

    注意要创建好data目录

    clip_image001

    二、使用Nodejs连接MongoDB

    在任意地方都可以写代码,比如我在D盘创建了一个Nodejs文件夹,以后的js文件全部放到里面,

    按住shift邮件选择打开命令行,先安装express:(其实这个可以不安装)

    npm install express

    再安装MongoDB组建:

    npm install mongodb

    然后打开Sublime Text 3,在刚才的目录下创建一个js文件,并编写代码如下:

    var mongodb = require('mongodb');
    var server = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var db = new mongodb.Db('mydb', server, {safe:true});
    
    //连接db
    db.open(function(err, db){
        if(!err){
            console.log('connect db');
            db.collection('users', {safe:true}, function(err, collection){
                if(err){
                    console.log(err);
                }else{
                    var whereStr={"name":"lisi"};
                    collection.find(whereStr).toArray(function(err,docs){
                        console.log('find');
                        console.log(docs);
                    });
                    collection.findOne(function(err,doc){
                        console.log('findOne');
                        console.log(doc);
                    });
                }
            });
        }else{
            console.log(err);
        }
    });

    这段代码应该没有什么难以理解的地方。

    先给数据库里面插入两条数据:

    新建表:db.createCollection('要新建的表名');
    db.表名.insert(数据);
    查询表中所有数据:db.表名.find();

    然后在编辑器中执行control+b即可看到结果:

    clip_image002

    我给库里插了两条数据:

    clip_image003

    完整增删改查代码如下:

    var  mongodb = require('mongodb');
    var  server  = new mongodb.Server('localhost', 27017, {auto_reconnect:true});
    var  db = new mongodb.Db('mydb', server, {safe:true});
    
    
    function search(){
    db.open(function(err, db){
        if(!err){
          //console.log(db);
            console.log('connect db');
            db.collection('users', {safe:true}, function(err, collection){
                if(err){
                    console.log(err);
                }else{
                               var whereStr={"name":"lisi"};
                       collection.find(whereStr).toArray(function(err,docs){
                       console.log('find');
                       console.log(docs);
                       }); 
                       collection.findOne(function(err,doc){
                        console.log('findOne');
                          console.log(doc);
                       }); 
                        collection.find().toArray(function(err,doc){
                        console.log('findAll');
                          console.log(doc);
                       });
                }
    
            });
        }else{
            console.log(err);
        }
    });
    }
    
    function change(){
    db.open(function(err, db){
        if(!err){
          //console.log(db);
            console.log('connect db');
            db.collection('users', {safe:true}, function(err, collection){
                if(err){
                    console.log(err);
                }else{
                     //var tmp1 = {name:'wangwu',age:13,number:1};
                     //collection.insert(tmp1,{safe:true},function(err, result){
                         //console.log(result);
                     //});
    
                       //更新数据
                       collection.update({name:'zhangsan'}, {$set:{age:4}}, {safe:true}, function(err, result){
                        console.log("update data");
                           console.log(result);
                       });
                       // 删除数据
                           // collection.remove({name:'zhangsan'},{safe:true},function(err,result){
                              //console.log(result);
                              //});
                }
    
            });
        }else{
            console.log(err);
        }
    });
    }
    
    search();
    change();
    search();
  • 相关阅读:
    js-21点小游戏
    js-打印出现最多次的字母
    盒模型浮动
    九九乘法表
    猫眼-湄公河行动电影介绍页面
    (day4)用css画三角形以及红旗
    cookie的使用
    用Servlet校验密码2
    Servlet登录验证
    Servlet概述
  • 原文地址:https://www.cnblogs.com/madyina/p/5327867.html
Copyright © 2020-2023  润新知