zoukankan      html  css  js  c++  java
  • nodeJS链接并操作mongo数据库

    首先,启动mongo客户端是必须要的

    启动之后,我们需要在项目中安装 “ mongodb ” 模块,接下来:

    //第一步,引入mongo模块,生成mongo模型对象
    var MongoClient=require('mongodb').MongoClient;
    //声明一个mongo地址
    var url="mongodb://127.0.0.1:27017/ued";
    //开始链接数据库
    MongoClient.connect(url,function(err,db){
        if(err){
            console.log(err)
        }else{
            console.log(db);
            console.log("数据库链接成功");
            //操作完成后在连接末尾关闭数据库
            db.close();
        }
    });

    这样,启动这个应用就能看到链接状态了。

    接下来看看如何操作数据库。。。。。。

    创建集合

    //第一步,引入mongo模块,生成mongo模型对象
    var MongoClient=require('mongodb').MongoClient;
    //声明一个mongo地址
    var url="mongodb://127.0.0.1:27017/ued";
    //开始链接数据库
    MongoClient.connect(url,function(err,db){
        if(err){
            console.log(err)
        }else{
            console.log(db);
            console.log("数据库链接成功");
    
            //在连接数据库的资源通道中创建集合
            createArticle(db,function(){
                console.log('集合创建成功');
                //操作完成后在连接末尾关闭数据库
                db.close();
            })
        }
    });
    
    //创建集合
    var createArticle=function(db,callback){
        db.createCollection('article',function(err,results){
            if(err){
                console.log(err);
            }else{
                console.log(results);
                callback();
            }
        });
    }

    插入数据

    //第一步,引入mongo模块,生成mongo模型对象
    var MongoClient=require('mongodb').MongoClient;
    //声明一个mongo地址
    var url="mongodb://127.0.0.1:27017/ued";
    //开始链接数据库
    MongoClient.connect(url,function(err,db){
        if(err){
            console.log(err)
        }else{
            //插入数据前先连接对应的集合
            var collection=db.collection('article');
            //插入单条数据
            collection.insertOne({title:"关于angularJS的几个小技巧",content:"关于angularJS的几个小技巧。。。。内容示例"},function(err,result){
                if(err){
                    console.log(err);
                }else{
                    console.log(result);
                    console.log('插入数据成功');
                    //插入完成后关闭数据库连接
                    db.close();
                }
            });
    
        }
    });

    除了插入一条数据,我们也可以插入多条数据:

    //第一步,引入mongo模块,生成mongo模型对象
    var MongoClient=require('mongodb').MongoClient;
    //声明一个mongo地址
    var url="mongodb://127.0.0.1:27017/ued";
    //开始链接数据库
    MongoClient.connect(url,function(err,db){
        if(err){
            console.log(err)
        }else{
            console.log(db);
            console.log("数据库链接成功");
    
            /*//在连接数据库的资源通道中创建集合
            createArticle(db,function(){
                console.log('集合创建成功');
                //操作完成后在连接末尾关闭数据库
                db.close();
            })*/
            //插入数据前先连接对应的集合
            var collection=db.collection('article');
            //插入多条数据
            collection.insertMany([
                {title:"关于angularJS的几个小技巧",content:"关于angularJS的几个小技巧。。。。内容示例"},
                {title:"数据可视化工具介绍——echarts",content:"数据可视化工具介绍——echarts。。。。内容示例"},
                {title:"摈弃jQuery,这些功能用js也能做",content:"摈弃jQuery,这些功能用js也能做。。。。内容示例"}
            ],{w:1},function(err,result){
                if(err){
                    console.log(err);
                }else{
                    console.log(result);
                    console.log('多条数据插入成功!');
                    db.close();
                }
            })
        }
    });

    在做多条插入的时候,我们配置了一些单条数据操作没有的参数——w,这是什么意思呢?

    w  安全写入设置

    其实除了w写安全以外,我们还有wtimeout:安全写入超时等等,不过目前来说暂时不需要关注,如果不太明白就算不写也是没问题的【反正我自己就不明白】

    查询数据

    //第一步,引入mongo模块,生成mongo模型对象
    var MongoClient=require('mongodb').MongoClient;
    //声明一个mongo地址
    var url="mongodb://127.0.0.1:27017/ued";
    //开始链接数据库
    MongoClient.connect(url,function(err,db){
        if(err){
            console.log(err)
        }else{           
            //插入数据前先连接对应的集合
            var collection=db.collection('article');       
            //查询数据
            collection.find({}).toArray(function(err,docs){
                if(err){
                    console.log(err);
                }else{
                    console.log('查询成功');
                    console.log(docs);
                }
            });
        }
    });

    更新数据

    //第一步,引入mongo模块,生成mongo模型对象
    var MongoClient=require('mongodb').MongoClient;
    //声明一个mongo地址
    var url="mongodb://127.0.0.1:27017/ued";
    //开始链接数据库
    MongoClient.connect(url,function(err,db){
        if(err){
            console.log(err)
        }else{
            //先连接对应的集合
            var collection=db.collection('article');       
            //更新数据
            collection.updateOne({title:'关于angularJS的几个小技巧111'},{$set:{title:"前端开发组件架构"}},function(result){
                console.log(result);
                //关闭数据库连接
                db.close()
            })
        }
    });

    删除数据

    //第一步,引入mongo模块,生成mongo模型对象
    var MongoClient=require('mongodb').MongoClient;
    //声明一个mongo地址
    var url="mongodb://127.0.0.1:27017/ued";
    //开始链接数据库
    MongoClient.connect(url,function(err,db){
        if(err){
            console.log(err)
        }else{
            //先连接对应的集合
            var collection=db.collection('article');     
            collection.removeOne({title:'前端开发组件架构'},function(err,result){
                if(err){
                    console.log(err);
                }else{
                    console.log(result);
                }
            });
        }
    });
  • 相关阅读:
    转载:QTableView中嵌入可视化组件
    pyqt声音输入
    pyqt二进制和图片的转换
    LeetCode(92):反转链表 II
    LeetCode(91):解码方法
    LeetCode(90):子集 II
    LeetCode(89):格雷编码
    LeetCode(88):合并两个有序数组
    LeetCode(87):扰乱字符串
    LeetCode(86):分隔链表
  • 原文地址:https://www.cnblogs.com/sky903700252/p/7768514.html
Copyright © 2011-2022 走看看