一、使用nodejs操作MongoDB数据库

①使用官方的mongodb包来操作

②使用第三方的mongoose包来操作(比较常用)

// 首先必须使MongoDB数据库保持开启状态
// npm下载mongoose包并引入
var mongoose=require('mongoose');
// 连接MongoDB数据库
mongoose.connect('mongodb://localhost/test',{useMongoClient:true});
mongoose.Promise=global.Promise;
// 创建一个模型,即设计数据库
var Cat=mongoose.model('Cat',{name:String});
// 实例化一个Cat
var kitty=new Cat({name:'hello world'});
// 持久化保存kitty实例
kitty.save(function(err,ret){
if(err){
console.log(err)
}else{
console.log(ret)
}
})

③使用mongoose操作MongoDB数据库例子:

  • 基本工作:开启MongoDB服务,连接数据库,npm安装包并引包、连接数据库、设计文档结构、将文档发布为模型
// 首先必须使MongoDB数据库保持开启状态
// npm下载mongoose包并引入
var mongoose=require('mongoose');
// 连接MongoDB数据库
mongoose.connect('mongodb://localhost/test');
// 设计文档结构
var Schema=mongoose.Schema;
var userSchema=new Schema({
username:{type:String,required:true},
password:{type:String,required:true},
email:{type:String},
});
// 将文档发布为模型mongoose.model()方法
/**
* 第一个参数:传入一个大写名词字符串用来表示数据库名,
* mongoose会自动将大写名词的字符串生成小写复数的集合名称
* 例如这里的User会变成users集合名称
* 第二个参数:架构schema
*/
var User= mongoose.model('User',userSchema)
// 实例化一个User
var admin=new User({
username:'admin',
password:'123456',
email:'admin@admin.com'
});
// 持久化保存admin实例
admin.save(function(err,ret){
if(err){
console.log('保存失败')
}else{
console.log('保存成功');
console.log(ret);
}
})

  • 查询数据(查)
// 查询所有的数据
User.find(function(err,ret){
if(err){
console.log('查询失败')
}else{
console.log(ret)
}
});
//按条件查询所有
User.find({username:'eric'},function(err,ret){
if(err){
console.log('查询失败')
}else{
console.log(ret)
}
})
// 按条件查询单个
User.findOne({username:'eric'},function(err,ret){
if(err){
console.log('查询失败')
}else{
console.log(ret)
}
});
  • 更改数据(改)
// 根据条件更新所有
User.update({username:'eric'},function(err,ret){
if(err){
console.log('更新失败')
}else{
console.log(ret)
}
});
// 根据指定条件更新一个
User.findOneAndUpdate({username:'eric'},function(err,ret){
if(err){
console.log('更新失败')
}else{
console.log(ret)
}
});
// 根据id更新一个
User.findByIdAndUpdate('5a12321431234124141',{password:'123'},function(err,ret){
if(err){
console.log('更新失败')
}else{
console.log(ret)
}
});
  • 删除数据(删)
// 根据条件删除所有
User.remove({username:'eric'},function(err,ret){
if(err){
console.log('删除失败')
}else{
console.log(ret)
}
});
// 根据指定条件删除一个
User.findOneAndRemove({username:'eric'},function(err,ret){
if(err){
console.log('删除失败')
}else{
console.log(ret)
}
});
// 根据id删除一个
User.findByIdAndRemove('5a12321431234124141',{password:'123'},function(err,ret){
if(err){
console.log('删除失败')
}else{
console.log(ret)
}
});

二、使用nodejs操作MySQL数据库

①npm安装包mysql----创建连接----连接数据库----执行数据操作(比如:增查删改)----关闭连接

②举例:

  • 数据库和数据表

  • 查询操作
// npm 安装并引入mysql包
var mysql=require('mysql');
// 创建连接
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'0000',
database:'test'
})
// 连接数据库(打开冰箱门)
connection.connect();
// 执行数据库操作(把大象放到冰箱)
// 注意:无论是查询,修改,增加,还是删除,就在第一个参数里面写SQL语句即可
// 查询
connection.query('SELECT * FROM `users`',function(error,results,fields){
if(error) throw error;
console.log('the solution is:',results);
});
// 关闭连接(关闭冰箱门)
connection.end();

  • 增加操作
// npm 安装并引入mysql包
var mysql=require('mysql');
// 创建连接
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'0000',
database:'test'
})
// 连接数据库(打开冰箱门)
connection.connect();
// 执行数据库操作(把大象放到冰箱)
// 注意:无论是查询,修改,增加,还是删除,就在第一个参数里面写SQL语句即可
// 增加
connection.query('INSERT INTO users VALUES(11,"admin",0,"1994-1-1","000000000")',function(error,results,fields){
if(error) throw error;
console.log('the solution is:',results);
});
// 查询
connection.query('SELECT * FROM `users`',function(error,results,fields){
if(error) throw error;
console.log('the solution is:',results);
});
// 关闭连接(关闭冰箱门)
connection.end();

在nodejs中操作数据库(MongoDB和MySQL为例)的更多相关文章

  1. PHP操作数据库(以MySQL为例)

    一.开启扩展配置: 在php.ini的extension板块中增加一行extension=php_mysqli.dll 重启PHP,在phpinfo查看 <?php echo phpinfo() ...

  2. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

  3. 在nodeJS中操作文件系统(二)

    在nodeJS中操作文件系统(二)   1. 移动文件或目录 在fs模块中,可以使用rename方法移动文件或目录,使用方法如下:     fs.rename(oldPath,newPath,call ...

  4. jmeter中操作数据库

    jmeter是如何操作数据库的? 步骤一:导入jdbc的jar包,jmeter本身不能直接连接mysql,所以需要导入第三方的jar包来连接mysql 点击测试计划,添加classpath,选择mys ...

  5. python中操作数据库

    python中要操作数据库,要使用该数据库在python中对应的驱动库,本文介绍python操作mysql数据库 1.首先安装pymysql 2.导入库 3.建立连接 4.建立游标 5.发起请求 6. ...

  6. YII2中操作数据库的方式

    一.以createCommand方式: // YII2中通过createCommand来处理数据库 // 查询多条记录 // {{%user}} 表示如果设置了表前缀,YII会自动帮你替换 $data ...

  7. 数据库(以MySQL为例)

    一.数据库简介 数据库就是数据的仓库,用来按照特定的结构去组织和管理数据,有了数据库可以更加方便.便捷的操作需要保存的数据 不管是什么数据库,最终都是将数据保存到硬盘中,只是存储的格式不同于文本文件 ...

  8. 在cmd中 操作 数据库 MySQL 的一些命令

    环境变量配置配置好以后, 打开cmd 连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant sele ...

  9. PHP中的数据库一、MySQL优化策略综述

    前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库.我们都知道,PHP开发中,数据的增删改查是核心.为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对 ...

随机推荐

  1. 【题解】Luogu P5290 [十二省联考2019]春节十二响

    原题传送门 每个点维护一个堆,表示这个点及其子树所需的每段内存的空间 搜索时从下向上做启发式合并堆中信息,最后根节点堆中所有内存空间之和就是答案 #include <bits/stdc++.h& ...

  2. 软件测试人员必备的Python知识图库

    UI自动化测试(Python+Selenium等) 接口测试(Python requests等) 性能测试(Python Locust等) 安全性测试(Python Scapy等) 兼容性测试(Pyt ...

  3. ElasticSearch 429 Too Many Requests circuit_breaking_exception

    错误提示 { "statusCode": 429, "error": "Too Many Requests", "message& ...

  4. 通过重新上传修改后的docker镜像来在kubeapps上实现k8s上部署的nginx版本更新,回退等

    docker操作:制作自定义镜像 # docker下载官方nginx镜像 docker pull nginx # 基于该镜像运行一个容器 docker run -it -d --name nginx_ ...

  5. 【解决方案】文件上具有 Web 标记,请删除 Web 标记

    错误: 无法处理文件 Form1.resx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记.要想处理这些文件,请删除 Web 标记.  解决方法: 文件-右键-属性 点击”解 ...

  6. 解决打开IE报错“无法启动...丢失api-ms-win-core-path-l1-1-0.dll”的问题

    打开IE突然发现报错 试了各种方法都不行 最终看这篇文章,才解决:https://www.yijile.com/log/577.html 打开IE设置选项,选择管理加载项,如图讲该选项禁用,就不报错. ...

  7. ELK +Nlog 分布式日志系统的搭建 For Windows

    前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询  SELECT * FROM `LhzxUsers` WHERE UserN ...

  8. Matlab代码优化之道

    一. 遵守Performance Acceleration的规则 关于什么是“Performance Acceleration”请参阅matlab的帮助文件.1.只有使用以下数据类型,matlab才会 ...

  9. 手写MQ框架(一)-准备启程

    一.背景 很久以前写了DAO框架和MVC框架,前段时间又重写了DAO框架-GDAO(手写DAO框架(一)-从“1”开始,源码:https://github.com/shuimutong/gdao.gi ...

  10. 《区块链DAPP开发入门、代码实现、场景应用》笔记2——Solidity实现简单的智能合约

    本节仅以一个简单的智能合约示例,介绍智能合约的基本组成元素,本合约定义一个uint类型的变量,以及对应这个变量的读写函数. 01 pragma solidity >=0.4.0 <0.6. ...