mongoose是一个让我们可以通过nodejs来操作MongoDB数据库的模块,mongoose模块里面封装了很多操作数据库的方法
在整个项目所在的文件夹中安装
npm install mongoose -S
安装好mongoose依赖包之后,就可以书写js代码了,创建一个.js的文件,如:mongoose.js,按照下面步骤进行书写:
const mongoose = require("mongoose");
mongoose.connect()用于连接mongodb,注意:mongoose是对Mongodb操作的封装,所以路径填写mongodb,而不是mongoose。
mongodb://localhost:27017 是默认的地址, 连接到本地数据库默认端口为27017
后面的aaa表示你自己建的数据库的名称
mongoose.connect("mongodb://localhost:27017/aaa");
mongoose.connect()返回一个状态无法确定的连接状态,所以我们需要自己手动 加上成功提醒和失败警告 。
由于connect()方法不能监听数据库连接情况,所以有一个connection属性,connection属性是mongoose模块的默认引用,返回一个Connetion对象。
所以,一般情况下此方法跟connet()方法搭配使用。
on(事件名称,回调函数) : 表示事件,
once(事件名称,回调函数) :表示事件,但只触发一次
error: 事件名称,固定写法,表示连接失败
open: 事件名称,固定写法,表示连接成功
回调函数指:事件结束时执行的函数
const db = mongoose.connection;
db.on("error",function(){
console.log("数据库连接失败");
})
db.once("open",function(){
console.log("数据库连接成功");
})
数据库已经有了,那么下面该建立数据表了,但是再建立数据表之前,mongoose要求我们先建立一个模式,如它官网所说, Mongoose 的一切始于 Schema
怎么理解呢,模式就相当于一个建立数据表的模板,通过模板来建立数据表。
下面,建立一个users表
//定义users表的模板
let usersSchema = new mongoose.Schema({
username:String,
password:String,
tel:Number
});
//创建users表
let usersModel = mongoose.model("users",usersSchema);
我使用的是Studio 3T 这个软件来操作数据库,打开软件,创建一个和上面连接数据库的路径中一样的名字:aaa
测试连接状态,在node中运行mongoose.js文件(输入命令: node mongoose.js)
如果出现数据库连接成功,表示连接成功,此时,aaa这个数据库中就会出现一个名为users的数据表接下来就可以进行数据库的增删查改了。
//插入一条或多条数据,一个对象表示一条数据
usersModel.insertMany([
{
username: "张三",
password: 123456,
tel: 12345678910
},
{
username: "李四",
password: 111111,
tel: 11122233345
}
]).then(function(res){
// 插入完成以后会执行这个函数
// res:表示插入的那些数据
console.log(res)
})
//根据条件查询
//查找所有username为张三的数据
usersModel.find({username: "张三"})
.then(function(res){
// 插入完成以后会执行这个函数
// res:表示查到的数据
console.log(res);
})
//修改一条数据,修改多条数据只需要把 updateOne改成 updateMany即可
//修改第一条username为张三的数据,把数据的password改为666666
usersModel.updateOne({username:"张三"},{$set: {password: "666666"}})
.then(function(res){
// 插入完成以后会执行这个函数
// res:表示修改是否成功的信息,
console.log(res);
})
// 删除一条数据,删除多条数据只需要把 deleteOne改成 deleteMany即可
// 删除第一条username为张三的数据
usersModel.deleteOne({username:'张三'}).then(function(res){
// data:表示删除是否成功的信息
console.log(res)
})
创建一个.js文件,名为mongoose.js
//导入mongoose模块
const mongoose = require("mongoose");
//连接数据库
//mongoose.connect()用于连接mongodb
mongoose.connect("mongodb://localhost:27017/aaa");
//获取数据库连接状态
const db = mongoose.connection;
db.on("error",function(){
console.log("数据库连接失败");
})
db.once("open",function(){
console.log("数据库连接成功");
})
//定义模式,Mongoose 的一切始于 Schema
let usersSchema = new mongoose.Schema({
username:String,
password:String,
tel:Number
});
//创建数据表 users
let usersModel = mongoose.model("users",usersSchema);
/*
增
*/
//插入一条或多条数据,一个对象表示一条数据
// usersModel.insertMany([
// {
// username: "张三",
// password: 123456,
// tel: 12345678910
// },
// {
// username: "李四",
// password: 111111,
// tel: 11122233345
// }
// ]).then(function(res){
// // 插入完成以后会执行这个函数
// // res:表示插入的那些数据
// console.log(res)
// })
/*
查
*/
//根据条件查询
// usersModel.find({username: "张三"})
// .then(function(res){
// // 插入完成以后会执行这个函数
// // res:表示查到的数据
// console.log(res);
// })
/*
改
*/
//修改一条数据,修改多条数据只需要把 updateOne改成 updateMany即可
// usersModel.updateOne({username:"张三"},{$set: {password: "666666"}})
// .then(function(res){
// // 插入完成以后会执行这个函数
// // res:表示修改是否成功的信息,
// console.log(res);
// })
/*
删
*/
// 删除一条数据,删除多条数据只需要把 deleteOne改成 deleteMany即可
// usersModel.deleteOne({username:'张三'}).then(function(res){
// // data:表示删除是否成功的信息
// console.log(res)
// })