在nodejs中操作数据库(MongoDB和MySQL为例)
一、使用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为例)的更多相关文章
- PHP操作数据库(以MySQL为例)
一.开启扩展配置: 在php.ini的extension板块中增加一行extension=php_mysqli.dll 重启PHP,在phpinfo查看 <?php echo phpinfo() ...
- shell编程系列23--shell操作数据库实战之mysql命令参数详解
shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...
- 在nodeJS中操作文件系统(二)
在nodeJS中操作文件系统(二) 1. 移动文件或目录 在fs模块中,可以使用rename方法移动文件或目录,使用方法如下: fs.rename(oldPath,newPath,call ...
- jmeter中操作数据库
jmeter是如何操作数据库的? 步骤一:导入jdbc的jar包,jmeter本身不能直接连接mysql,所以需要导入第三方的jar包来连接mysql 点击测试计划,添加classpath,选择mys ...
- python中操作数据库
python中要操作数据库,要使用该数据库在python中对应的驱动库,本文介绍python操作mysql数据库 1.首先安装pymysql 2.导入库 3.建立连接 4.建立游标 5.发起请求 6. ...
- YII2中操作数据库的方式
一.以createCommand方式: // YII2中通过createCommand来处理数据库 // 查询多条记录 // {{%user}} 表示如果设置了表前缀,YII会自动帮你替换 $data ...
- 数据库(以MySQL为例)
一.数据库简介 数据库就是数据的仓库,用来按照特定的结构去组织和管理数据,有了数据库可以更加方便.便捷的操作需要保存的数据 不管是什么数据库,最终都是将数据保存到硬盘中,只是存储的格式不同于文本文件 ...
- 在cmd中 操作 数据库 MySQL 的一些命令
环境变量配置配置好以后, 打开cmd 连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant sele ...
- PHP中的数据库一、MySQL优化策略综述
前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库.我们都知道,PHP开发中,数据的增删改查是核心.为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对 ...
随机推荐
- appium 方法整理
1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可 ...
- JAVA十六进制数据接收与传输
一.十六进制转换工具类 主要包含十六进制字符串转ASCII,ASCII转十六进制字符串以及十六进制字符串转Byte数组等方法: /** * Created by wly on 2018/4/17. * ...
- Kafka理解
1. 引言 最近使用Kafka做消息队列时,完成了基本的消息发送与接收,已上线运行.一方面防止出现Bug时自己不能及时定位问题,一方面网上的配置可能还可以更加优化,决定去了解下Kafka. 2. 配置 ...
- C# 练习题 将一个正整数分解质因数
题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程 ...
- docker部署Asp.Net Core、Nginx、MySQL
2019/10/24,docker19.03.4, .netcore 3.0,CentOS7.6 摘要:asp.net core 3.0 网站项目容器化部署,使用docker-compose编排Ngi ...
- flutter_screenutil
import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; ...
- JAVA基础之HttpServletResponse响应
用户在客户端输入网址(虚拟路径)时,开始发送一个HTTP请求(请求行.请求头.请求体)至服务器.服务器内的Tomcat引擎会解析请求的地址,去找XML文件,然后根据虚拟路径找Servlet的真实路径, ...
- 纯css实现省略号,兼容火狐,IE9,chrome
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaWeb 之 JSON
一.概述 1.概念 JSON:JavaScript Object Notation JavaScript对象表示法 2.基本格式 var p = {"name":"张三 ...
- Android存储及getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()区别
存储介绍 Android系统分为内部存储和外部存储,内部存储是手机系统自带的存储,一般空间都比较小,外部存储一般是SD卡的存储,空间一般都比较大,但不一定可用或者剩余空间可能不足.一般我们存储内容都会 ...