一、使用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. ansible debugger 模块

    在搞TF(tungstenfabric)时遇到了一些错误,TF通过ansible playbook 来部署的.通常情况下遇到错误都是通过ansibale xxxx –vvv 来详细输出一下.出错的类型 ...

  2. Java abstract 理解和学习

    /** * <html> * <body> * <P> Copyright JasonInternational Since 1994 https://github ...

  3. C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?

    原文:C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 在 .NET 中创建进程时,可以传入 ProcessStartInfo ...

  4. volatile-最轻量级的并发实现及其内存语义

    原文连接:(http://www.studyshare.cn/blog/details/1163/0 ) 一.volatile定义 volatile是java并发编程中修饰类的成员变量.成员属性或者对 ...

  5. That IP address can't be assigned to.的问题

    That IP address can't be assigned to. 烦恼了很久,现在知道了,解决的办法如下 首先确定端口号是不是开放,阿里云的直接在控制台修改 其次 看看 你的地址是不是输入错 ...

  6. Matlab工厂模式

    工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类.工厂模式主要分为简单工厂模式.工厂方法模式以及抽象工厂模式. Obj.m classdef Obj ...

  7. 从客户端中检测到有潜在危险的 Request.QueryString 值

    解决办法: 一.解决方法是在web.config的 里面加入<system.web> <pages validateRequest="false"/>< ...

  8. chrome浏览页面常用快捷键

    1.chrome浏览页面常用快捷键 Ctrl+N 打开新窗口. Ctrl+T 打开新标签页. Ctrl+W关闭当前标签 Ctrl + F4 关闭chrome浏览器 Ctrl+Tab 或 Ctrl+Pg ...

  9. 【DATAGUARD】物理dg的failover切换(六)

    [DATAGUARD]物理dg的failover切换(六) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你 ...

  10. java HttpClient操作工具类

    maven: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId> ...