热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nodejs操作MongoDb数据库

在Nodejs中使用MongoDB需要引包:npminstallmongodb--save-devNodejs连接MongoDB数据库varexpressreq

在 Nodejs 中使用 MongoDB

需要引包:

npm install mongodb --save-dev

Nodejs 连接 MongoDB 数据库

var express = require("express");
//数据库引用
var MongoClient = require('mongodb').MongoClient;
var app = express();
//数据库连接的地址,最后的斜杠表示数据库名字
var shujukuURL = 'mongodb://localhost:27017/news';
app.get("/",
function(req, res) {//连接数据库,这是一个异步的操作MongoClient.connect(shujukuURL,function(err, db) {res.writeHead(200, {"Content-Type": "text/html;charset=UTF8"});if (err) {res.send("数据库连接失败");return;}res.write("恭喜,数据库已经成功连接 \n");db.collection("user").insertOne({"name": "哈哈"},function(err, result) {if (err) {res.send("数据库写入失败");return;}res.write("恭喜,数据已经成功插入");res.end();//关闭数据库db.close();});});
});
app.listen(8020);

Nodejs 查找 MongoDB 数据库集合

MongoClient.connect(dbUrl,
function(err, db) {if (err) {/*数据库连接失败*/console.log('数据库连接失败');return;}var result = [];var userRel = db.collection('user').find();//res.send(userRel);userRel.each(function(err, doc) {if (err) {res.write("游标遍历错误");return;}if (doc != null) {result.push(doc);} else {console.log(result);//遍历完毕db.close();res.render("index", {"result": result});}});
})

Nodejs 给 MongoDB 增加数据

MongoClient.connect(dbUrl,
function(err, db) {if (err) {return}db.collection('user').insertOne({"name": name,"age": age,"score": {"shuxue": shuxuechengji,"yuwen": yuwenchengji}},function(err, result) {if (err) {console.log('写入数据失败');}//关闭数据库db.close();//res.redirect('/add');res.redirect('/');/*路由跳转*/res.end();res.location('/add')})
})

Nodejs 修改 MongoDB 数据

MongoClient.connect(dbUrl,
function(err, db) {if (err) {console.log('数据库连接错误');return;}db.collection('user').updateOne({"_id": ObjectID(id)},{"name": name,"age": age,"score": {"shuxue": shuxue,"yuwen": yuwen}},function(err, results) {console.log(results);db.close();res.redirect('/');/*路由跳转*/res.end('end');})
})

Nodejs 删除 MongoDB 数据

MongoClient.connect(dbUrl,
function(err, db) {if (err) {throw new Error("数据库连接失败");return;}db.collection('user').deleteOne({"_id": ObjectID(id)},function(error, result) {if (error) {throw new Error('删除数据失败');return;}db.close();res.redirect('/');/*路由跳转*/})
})

推荐阅读
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 本文介绍了一种专为清洁工人设计的自定义文本烟花效果。通过该功能,用户可以输入特定的感谢或祝福语句,系统将生成绚丽的烟花动画,以表达对清洁工人的敬意和感激之情。该特效不仅美观,还能增强用户的互动体验,提升公共场合的氛围。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 微信支付授权目录配置详解及操作步骤
    在使用微信支付时,若通过WeixinJSBridge.invoke方法调用支付功能,可能会遇到“当前页面URL未注册”的错误提示,导致get_brand_wcpay_request:fail调用微信JSAPI支付失败。为解决这一问题,需要正确配置微信支付授权目录,确保支付页面的URL已成功注册。本文将详细介绍微信支付授权目录的配置步骤和注意事项,帮助开发者顺利完成支付功能的集成与调试。 ... [详细]
  • MySQL 错误:检测到死锁,在尝试获取锁时;建议重启事务(Node.js 环境)
    在 Node.js 环境中,MySQL 数据库操作时遇到了“检测到死锁,在尝试获取锁时;建议重启事务”的错误。本文将探讨该错误的原因,并提供有效的解决策略,包括事务管理优化和锁机制的理解。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • MVVM架构~mvc,mvp,mvvm大话开篇
    返回目录百度百科的定义:MVP是从经典的模式MVC演变而来,它们的基本思想有相通的地方:ControllerPresenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模 ... [详细]
  • 本章节深入探讨了 Webpack 命令的高级功能,涵盖了官方快速入门教程中未涉及的细节。通过实际操作和案例分析,对官方文档进行了详细解读与补充,帮助读者更好地理解和应用这些进阶技巧。 ... [详细]
  • 本文提供了 RabbitMQ 3.7 的快速上手指南,详细介绍了环境搭建、生产者和消费者的配置与使用。通过官方教程的指引,读者可以轻松完成初步测试和实践,快速掌握 RabbitMQ 的核心功能和基本操作。 ... [详细]
  • Django框架进阶教程:掌握Ajax请求的基础知识与应用技巧
    本教程深入探讨了Django框架中Ajax请求的核心概念与实用技巧,帮助开发者掌握异步数据交互的方法,提升Web应用的响应速度和用户体验。通过实例解析,详细介绍了如何在Django项目中高效实现Ajax请求,涵盖从基础配置到复杂场景的应用。 ... [详细]
  • 本文深入探讨了 C# 中 `SqlCommand` 和 `SqlDataAdapter` 的核心差异及其应用场景。`SqlCommand` 主要用于执行单一的 SQL 命令,并通过 `DataReader` 获取结果,具有较高的执行效率,但灵活性较低。相比之下,`SqlDataAdapter` 则适用于复杂的数据操作,通过 `DataSet` 提供了更多的数据处理功能,如数据填充、更新和批量操作,更适合需要频繁数据交互的场景。 ... [详细]
  • MySQL日志分析在应急响应中的应用与优化策略
    在应急响应中,MySQL日志分析对于检测和应对数据库攻击具有重要意义。常见的攻击手段包括弱口令、SQL注入、权限提升和备份数据窃取。通过对MySQL日志的深入分析,不仅可以及时发现潜在的攻击行为,还能详细还原攻击过程并追踪攻击源头。此外,优化日志记录和分析策略,能够提高安全响应效率,增强系统的整体安全性。 ... [详细]
  • 本文介绍了在 Android 平台上的图片上传工具类优化方案,重点讨论了如何通过设置 `MultipartEntity` 来实现图片的高效上传。具体实现中,通过自定义 `UserUploadServiceImpl` 类,详细展示了如何构建和发送包含图片数据的 HTTP 请求。此外,还探讨了如何处理上传过程中的常见问题,如网络异常和文件格式验证,以确保上传的稳定性和可靠性。 ... [详细]
  • 如何迅速识别并解决Gradle项目中的Jar包名称冲突问题?
    在处理Gradle项目时,经常会遇到Jar包名称冲突的问题。本文介绍了如何快速识别并解决此类冲突,特别是在使用fastjson的Feature.OrderedField功能时。通过添加特定参数,可以有效避免JSON字段乱序的情况,确保数据的一致性和可靠性。此外,文章还提供了详细的步骤和示例代码,帮助开发者高效地解决Jar包冲突问题。 ... [详细]
  • 在Linux系统中,原本已安装了多个版本的Python 2,并且还安装了Anaconda,其中包含了Python 3。本文详细介绍了如何通过配置环境变量,使系统默认使用指定版本的Python,以便在不同版本之间轻松切换。此外,文章还提供了具体的实践步骤和注意事项,帮助用户高效地管理和使用不同版本的Python环境。 ... [详细]
author-avatar
Christy-1221
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有