一、使用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 CF1172B Nauuo and Circle

    原题传送门 题意:在圆上有n个节点(珂以构成凸多边形),让你给节点编号,使得将题目给你的边(一棵树)没有交叉 我们钦定1为这个树的根节点.任意节点\(x\)的一颗子树的点应该是圆弧上连续的一段(我也不 ...

  2. 【1】【leetcode-115 动态规划】 不同的子序列

    给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数. 一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串.(例如," ...

  3. Java核心技术梳理-类加载机制与反射

    一.引言 反射机制是一个非常好用的机制,C#和Java中都有反射,反射机制简单来说就是在程序运行状态时,对于任意一个类,能够知道这个类的所有属性和方法,对于任意一个对象,能够调用它的任意属性和方法,其 ...

  4. java之hiberante之集合映射之list映射

    这篇讲解 集合映射之List映射 1.通常对于集合,在hibernate中的处理都是使用set来完成.但是hibernate也提供了对于其他几种集合的映射. 在这里实现List的映射,List是有序的 ...

  5. $(...).wordExport is not a function

     参考网址:https://laod.cn/code-audit/jquery-is-not-a-function.html 问题描述: 1.view页面引用的是jquery-1.10.2.min.j ...

  6. 使用poi统计工作职责

    1 创建一个新的sheet工作页 Sheet job = workbook.createSheet("工作职责统计"); 2 查询工作职责问题选项列表,并设置第一行倒出时间 Lis ...

  7. guava使用

    对于Guava Cache本身就不多做介绍了,一个非常好用的本地cache lib,可以完全取代自己手动维护ConcurrentHashMap. 背景 目前需要开发一个接口I,对性能要求有非常高的要求 ...

  8. vip视频播放

    插件  Tampermonkey https://greasyfork.org/zh-CN

  9. Keystore Problem: Cannot convert COMBINED of type class java.lang.String to class org.jivesoftware.openfire.spi.ConnectionType

    go to: Server Manager -> System Properties Search for "xmpp.socket.ssl.client.keypass" ...

  10. Android笔记(七十四) 详解Intent

    我们最常使用Intent来实现Activity之间的转跳,最近做一个app用到从系统搜索图片的功能,使用到了intent的 setType 方法和 setAction 方法,网上搜索一番,发现实现转跳 ...