当前位置: 首页 > news >正文

[Node.js]连接mongodb

 

 

摘要

前面介绍了node.js操作mysql以及redis的内容,这里继续学习操作mongodb的内容。

安装驱动

安装命令

cnpm install mongodb

安装成功

数据库操作

 因为mongodb是文档类型的数据库,与mysql有很大不同,mongodb会自动创建数据库和集合,并不需要提前进行手动创建。

Insert

var MongoClient = require("mongodb").MongoClient;
var DB_CONN_STR = "mongodb://sa:sa@localhost:27017/test_db";
var insertData = function (db, callback) {
   //连接数据表my_firsrt_collection
   var collection = db.collection("my_firsrt_collection");
   var data = [{ "name": "wolfy1", "age": 20 }, { "name": "wolfy2", "age": 20 }]
   collection.insert(data, function (err, result) {
       if (err) {
           console.log("error:" + err);
           return;
       };
       callback(result);
   });
};
 MongoClient.connect(DB_CONN_STR, function (err, db) {
       if (err) {
           console.log("连接失败:" + err);
           return;
       };
       console.log("连接成功");
       insertData(db,function(result){
           console.log(result);
           db.close();
       });
   });

结果

 

查询数据

var MongoClient = require("mongodb").MongoClient;

var DB_CONN_STR = "mongodb://sa:sa@localhost:27017/test_db";
//查询 var queryData = function (db, callback)
{
//连接数据表my_firsrt_collection
var collection = db.collection("my_firsrt_collection");
//查询条件 var where = { "name": "wolfy1" };
collection.find(where).toArray(function (err, result)
{
if (err)
{ console.log("error:" + err); return; };
callback(result); }); };
MongoClient.connect(DB_CONN_STR, function (err, db)
{
if (err)
{
console.log("连接失败:" + err);
return;
};
console.log("连接成功");
queryData(db, function (result)
{ console.log(result); db.close();
});
});
结果

 

结果

更新数据

var MongoClient = require("mongodb").MongoClient;
var DB_CONN_STR = "mongodb://sa:sa@localhost:27017/test_db";
//查询
var updateData = function (db, callback) {
   //连接数据表my_firsrt_collection
   var collection = db.collection("my_firsrt_collection");
   //查询条件
   var where = { "name": "wolfy1" };
   var updateStr={$set:{"address":"http://www.cnblogs.com/wolf-sun/"}};
   collection.update(where,updateStr,function (err, result) {
       if (err) {
           console.log("error:" + err);
           return;
       };
       callback(result);
   });
};
MongoClient.connect(DB_CONN_STR, function (err, db) {
   if (err) {
       console.log("连接失败:" + err);
       return;
   };
   console.log("连接成功");
   updateData(db, function (result) {
       console.log(result);
       db.close();
   });
});

结果

删除数据

var MongoClient = require("mongodb").MongoClient;
var DB_CONN_STR = "mongodb://sa:sa@localhost:27017/test_db";
//删除
var deleteData = function (db, callback) {
//连接数据表my_firsrt_collection
var collection = db.collection("my_firsrt_collection");
//查询条件 var where = { "name": "wolfy1" }; collection.remove(where, function (err, result) {
if (err) { console.log("error:" + err);
return; }; callback(result); }); }; MongoClient.connect(DB_CONN_STR, function (err, db) {
if (err) { console.log("连接失败:" + err);
return; }; console.log("连接成功"); deleteData(db, function (result) { console.log(result); db.close(); }); });

结果

 

转载于:https://www.cnblogs.com/catbrother/p/9411156.html

相关文章:

  • 数据分析——四种大数据分析方法
  • Maven POM详解
  • 技术指导实践指南
  • @EnableAsync和@Async开始异步任务支持
  • Jenkins+Kubernetes CI/CD
  • YARN中内存的设置
  • 责任链模式 以及在Android开发中的运用
  • 学习打卡-2018/08/07
  • Micro Service Architecture — Timeout
  • 通用清除浮动方式
  • Struts2之校验
  • python基础库
  • 逻辑回归最小二乘推导
  • Emgu-WPF 激光雷达研究-移动物体跟踪
  • 浅谈OSI七层模型之物理层
  • Asm.js的简单介绍
  • C++类的相互关联
  • download使用浅析
  • Druid 在有赞的实践
  • HTTP中GET与POST的区别 99%的错误认识
  • Idea+maven+scala构建包并在spark on yarn 运行
  • If…else
  • JavaScript的使用你知道几种?(上)
  • Java读取Properties文件的六种方法
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Mysql优化
  • NSTimer学习笔记
  • Sequelize 中文文档 v4 - Getting started - 入门
  • 大主子表关联的性能优化方法
  • 每天10道Java面试题,跟我走,offer有!
  • 前端性能优化——回流与重绘
  • 思否第一天
  • 微信小程序实战练习(仿五洲到家微信版)
  • 阿里云ACE认证学习知识点梳理
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (3)STL算法之搜索
  • (4)logging(日志模块)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (南京观海微电子)——COF介绍
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十八)三元表达式和列表解析
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)http协议
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • **CI中自动类加载的用法总结
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .Net Redis的秒杀Dome和异步执行
  • .NET框架
  • .sys文件乱码_python vscode输出乱码