Node.Js篇 NodeJs使用MongoDB

目录

介绍

概念解析

                  安装

启动时注意事项

NodeJs操作Mongo


介绍

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。                                                                                                  MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。


概念解析


安装

1:安装mongodb-win32-x86_64-3.2.5-signed.msi
2:手动创建目录 如 C:datadb   及  C:datadbConf
      我们希望将数据库及相关配置和日志等放入这两个目录中
3:管理员身份运行 cmd
    C:WindowsSystem32cmd.exe   (找到该软件,右键,管理员身份运行)    
4:进入安装文件夹
    cd C:Program FilesMongoDBServer3.2bin
        注意跨盘符的问题
5:执行命令,数据库存储位置
    mongod.exe --dbpath C:datadb                                                                                                注意:有时候第5步执行后,有可能dos窗口无法输入内容,需要关掉窗口重新打开,执行第6步;(或ctrl+c终止当前命令)
6:执行命令,日志和服务
    mongod.exe --logpath "C:datadbConfmongodb.log" --logappend --dbpath "C:datadb" --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install        

注意:在复制这一行的时候,要一行复制。windows记事本-格式-取消自动换行
7:win+r   >    services.msc
    找到刚才创建的服务,YourServiceName,启动它,如果启动失败,尝试重启电脑。
8:在nodejs的项目中,添加模块
    npm install mongodb          注意:要先在dos窗口内进入项目文件夹,然后npm命令将模块插入
9:编写app.js
数据库相关代码,会在该页面后面介绍。
10:node app.js
指开启服务

安装数据库可视化工具
robomongo-0.9.0-rc7-windows-x86_64-2b7a8ca.exe
1:打开该工具
2:开启连接窗口 MongoDB Connections
3:点击Create按钮创建一个连接,按照默认项保存即可
4:选中该连接,点击连接按钮


启动时注意事项

执行了 mongod.exe --dbpath C:datadb 之后打开一个新管理员窗口到bin路劲下执行mongo就是启动mongodb数据库。                                                                                                                    注意:此方法 mongod.exe --dbpath C:datadb 可以理解为启动服务,mongo可以理解为连接数据库。启动完之后就关闭那个窗口再连接会报‘由于目标计算机积极拒绝,无法连接’,所以此方法不推荐使用

执行安装第六条的命令 mongod.exe --logpath "C:datadbConfmongodb.log" --logappend --dbpath "C:datadb" --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install 之后再从命令行输入services.msc找到YourServiceName服务,右键启动此服务,打开管理员dos窗口到bin路劲下输入mongo就可以连接mongodb数据库,此方法推荐使用。执行了第六条命令(一边即可),往后需要启动连接,仅需要从命令行输入services.msc找到 YourServiceName服务,右键启动此服务就可以连接了


NodeJs操作Mongo

进入项目路劲下,安装mongodb插件 npm install mongodb

var MongoClient=require('mongodb').MongoClient;
//.MongoClient是mongodb下的对象,可以理解为连接对象
var url = "mongodb://localhost:27017/data"
//url它不是一个网址,可以理解成数据库的地址,在//的右边local的左边可以写账户密码,端口后面是数据库
MongoClient.connect(url,function(err,db){
    if(err) throw err;
    console.log('数据库已创建')
    db.close() //可以理解为把db关闭了,关闭了就不能使用db这个参数
})

 以下代码是做一些简单的增删改查

var MongoClient = require('mongodb').MongoClient //npm i mongodb 安装驱动
var url = "mongodb://localhost:27017/day0516" //端口后面的data是数据库表示进入data数据库
var http = require('http')

http.createServer((req,res)=>{

    res.writeHead(200,{
        "Content-Type":"text/html;charset=utf-8"
    })

    //只要访问这个JS文件,就直接打开数据库
    MongoClient.connect(url,function(err,db){
        //一个电脑里面可以有很多数据库,下面语义是进入到data数据库里
        var dbase = db.db("day0516")
        if(req.url=='/'){
            //创建一个集合(表),集合的命叫userlist,第二个参数
            dbase.createCollection('userlist',function(err,result){
                console.log('服务创建成功')
            })
            res.end();
        }else if(req.url=='/insert'){
            //在数据库中找到表,然后用insertOne插入一条数据,insertMany可以插入多条数据
            // var myobj = {"user":"张三","password":"123"}
            var myobj = [
                        {"user":"刘备","password":"111","random":parseInt(Math.random()*1000)},
                        {"user":"关羽","password":"222","random":parseInt(Math.random()*1000)},
                        {"user":"张飞","password":"333","random":parseInt(Math.random()*1000)}
                    ]
            dbase.collection('userlist').insertMany(myobj,function(err,result){
                console.log('文档插入成功');
                res.end()
            })
        }else if(req.url=='/select'){
            //查询数据,排序,数量
            var nul ={} //无条件查询,查询所有
            var where = {user:'张飞',password:'333'} //查询条件为user是张飞并且密码是333
            var mysort = {random:-1} //排序 random语义是根据random字段进行排序
            // limit(3) 表示返回3条数据 
            // skip(1) 表示跳过1条
            dbase.collection('userlist').find(nul).sort(mysort).skip(1).limit(2).toArray(function(err,result){
                console.log(result)
                result.forEach(data=>{
                    res.write(data.user+":"+data.password+" - "+data.random+'<br>')
                })
                res.end()
            })
        }else if(req.url=='/update'){
            //更新数据  updateOne更新一条数据  updateMany更新多条数据
            var whereStr = {"user":"张飞"}  //表示更新条件
            var updateStr = {$set:{"password":"44444"}}  //表示新的值
            dbase.collection('userlist').updateOne(whereStr,updateStr,function(err,result){
                console.log('文档更新成功',result);
                res.end()
            })
        }else if(req.url=='/delete'){
            //删除
            var whereStr={"user":"张飞"}
            dbase.collection('userlist').deleteMany(whereStr,function(err,result){
                console.log('文档删除成功',result);
                res.end()
            })
        }
    })
    // res.end()
}).listen(8085) 


 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>