Node.Js篇 NodeJs使用MongoDB

这篇具有很好参考价值的文章主要介绍了Node.Js篇 NodeJs使用MongoDB。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

介绍

概念解析

                  安装

启动时注意事项

NodeJs操作Mongo


介绍

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


概念解析

mongodb nodejs,mongodb,node.js,数据库


安装

1:安装mongodb-win32-x86_64-3.2.5-signed.msi
2:手动创建目录 如 C:\data\db   及  C:\data\dbConf
      我们希望将数据库及相关配置和日志等放入这两个目录中
3:管理员身份运行 cmd
    C:\Windows\System32\cmd.exe   (找到该软件,右键,管理员身份运行)    
4:进入安装文件夹
    cd C:\Program Files\MongoDB\Server\3.2\bin
        注意跨盘符的问题
5:执行命令,数据库存储位置
    mongod.exe --dbpath C:\data\db                                                                                                注意:有时候第5步执行后,有可能dos窗口无法输入内容,需要关掉窗口重新打开,执行第6步;(或ctrl+c终止当前命令)
6:执行命令,日志和服务
    mongod.exe --logpath "C:\data\dbConf\mongodb.log" --logappend --dbpath "C:\data\db" --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:\data\db 之后打开一个新管理员窗口到bin路劲下执行mongo就是启动mongodb数据库。                                                                                                                    注意:此方法 mongod.exe --dbpath C:\data\db 可以理解为启动服务,mongo可以理解为连接数据库。启动完之后就关闭那个窗口再连接会报‘由于目标计算机积极拒绝,无法连接’,所以此方法不推荐使用

执行安装第六条的命令 mongod.exe --logpath "C:\data\dbConf\mongodb.log" --logappend --dbpath "C:\data\db" --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) 



 文章来源地址https://www.toymoban.com/news/detail-697777.html

到了这里,关于Node.Js篇 NodeJs使用MongoDB的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Node.js从基础到高级运用】十三、NodeJS中间件高级应用

    在现代web开发中,Node.js因其高效和灵活性而备受青睐。其中,中间件的概念是构建高效Node.js应用的关键。在这篇博客文章中,我们将深入探讨Node.js中间件的高级应用,包括创建自定义中间件、使用第三方中间件等。我们将从基础讲起,逐步深入,旨在为读者提供全面而深入

    2024年03月22日
    浏览(99)
  • Nodejs 入门8 NeDB 轻量级的Node.js 数据库

    常用的sqlite轻量级数据库,nodejs在windows环境下安装配置有时候会比较麻烦,很难顺利安装。 Nedb(Node Embedded Database)在一些情况下可以替代sqlite,特别适用于小型项目和快速原型开发。本文将介绍Nedb的基本概念、特性和使用方法,以帮助大家更好地了解和利用这个便捷的工

    2024年01月22日
    浏览(65)
  • 记录一下,C#运行nodejs调用js文件提示报错:Error: node:internal/modules/cjs/loader:1080

    个人记录一下,C#运行nodejs调用js文件提示报错: 报错提示信息: Error: node:internal/modules/cjs/loader:1080 throw err;   ^  Error: Cannot find module \\\'F:鎴戠殑....................” .....................下面还有很多报错内容 还有英文提示模块未找到的提示。 我另一个文件运行没报错,运行正常有

    2024年02月11日
    浏览(156)
  • 在 Node.js 中使用 MongoDB 事务

    MongoDB事务 事务介绍 在 MongoDB 中,对单个文档的操作是原子的。由于您可以使用嵌入的文档和数组来捕获单个文档结构中的数据之间的关系,而不是跨多个文档和集合进行规范化,因此这种单一文档的原子性消除了对多文档的需求许多实际用例的事务。 对于需要对多个文档(

    2024年02月10日
    浏览(40)
  • 最新版 nodejs和npm版本不匹配问题解决:ERROR: npm v9.5.1 is known not to run on Node.js

    最近项目用到了node和npm ,查看一下当前版本,发现有报错   ERROR: npm v9.6.2 is known not to run on Node.js v12.13.1. You\\\'ll need to upgrade to a newer Node.js version in order to use this version of npm. This version of npm supports the following node versions: `^14.17.0 || ^16.13.0 || =18.0.0`. You can find the latest version at https

    2023年04月16日
    浏览(98)
  • 在Node.js中使用MongoDB连接数据库、创建集合

    本文主要介绍在Node.js中使用MongoDB连接数据库、创建集合的方法。 在Node.js中使用MongoDB连接数据库有两种方式:使用原生驱动程序和使用Mongoose。 首先,需要安装 mongodb 模块。可以通过以下命令来安装: 安装完成后,可以在代码中引入模块: 接着,可以使用 MongoClient 来连接

    2024年02月04日
    浏览(55)
  • Mongodb 以及 node.js中使用mongoose操作数据库

    目录 1、lowdb 2、Mongodb是什么? 3、Mongodb核心概念 4、Mongodb的下载与使用 5、数据库与集合命令 5.1、数据库命令 5.2、集合命令 5.3、文档命令 6、Mongoose 6.1、插入文档 6.2、字段类型 6.3、字段值验证 6.3.1、必填项 6.3.2、默认值 6.3.3、枚举值 6.3.4、唯一值 6.4、删除文档 6.5、更新文

    2024年02月11日
    浏览(45)
  • Error: Cannot find module E:\nodejs\node_modules\npm\bin\npm-cli.js

    在用node开发服务器端的时候,发现用npm下载一个插件,成功之后,再用npm命令进行相关操作,报错了Error: Cannot find module E:nodejsnode_modulesnpmbinnpm-cli.js。 这个错误翻译过来就是说:找不到nodejsnode_modulesnpmbinnpm-cli.js这个路径对应的文件了,跑我的E盘看的时候,确实npm文件

    2024年02月08日
    浏览(67)
  • nvm安装node后,报错Cannot find module ‘C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js‘

    问题描述 nvm安装node后,也会自动安装npm工具,但是在提示安装完成之后,使用npm相关命令时,会报如下错误 Error: Cannot find module \\\'C:Program Filesnodejsnode_modulesnpmbinnpm-cli.js\\\' 原因: 可以查看当前node版本  node -v,如v14.18.1,然后去nvm安装地址中找C:Users10153615AppDataRoamingnvm,

    2024年04月13日
    浏览(81)
  • Node.js开发-MongoDB

    介绍 Mongoose 是一个对象文档模型库,官网 http://www.mongoosejs.net/ 作用 方便使用代码操作 mongodb 数据库 使用流程 文档结构可选的常用字段类型列表 类型 描述 String 字符串 Number 数字 Boolean 布尔值 Array 数组,也可以使用 [] 来标识 Date 日期 Buffer Buffer 对象 Mixed 任意类型,需要使

    2024年02月20日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包