nodejs:mongoose模块

nodejs:mongoose模块

一、介绍

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("数据库连接成功");
})

六、定义模式(Schema)并创建数据表

数据库已经有了,那么下面该建立数据表了,但是再建立数据表之前,mongoose要求我们先建立一个模式,如它官网所说, Mongoose 的一切始于 Schema

怎么理解呢,模式就相当于一个建立数据表的模板,通过模板来建立数据表。

下面,建立一个users表

//定义users表的模板
let usersSchema = new mongoose.Schema({
    username:String,
    password:String,
    tel:Number
});
//创建users表
let usersModel = mongoose.model("users",usersSchema);

七、使用MongoDB

我使用的是Studio 3T 这个软件来操作数据库,打开软件,创建一个和上面连接数据库的路径中一样的名字:aaa
nodejs:mongoose模块_第1张图片

测试连接状态,在node中运行mongoose.js文件(输入命令: node mongoose.js)

如果出现数据库连接成功,表示连接成功,此时,aaa这个数据库中就会出现一个名为users的数据表接下来就可以进行数据库的增删查改了。

八、数据库的增删查改

1、增

//插入一条或多条数据,一个对象表示一条数据
usersModel.insertMany([
    {
        username: "张三",
        password: 123456,
        tel: 12345678910
    },
    {
        username: "李四",
        password: 111111,
        tel: 11122233345
    }
]).then(function(res){
    // 插入完成以后会执行这个函数
    // res:表示插入的那些数据
    console.log(res)
})

2、查

//根据条件查询
//查找所有username为张三的数据
usersModel.find({username: "张三"})
.then(function(res){
    // 插入完成以后会执行这个函数
    // res:表示查到的数据
    console.log(res);
})

3、改

//修改一条数据,修改多条数据只需要把 updateOne改成 updateMany即可
//修改第一条username为张三的数据,把数据的password改为666666
usersModel.updateOne({username:"张三"},{$set: {password: "666666"}})
.then(function(res){
    // 插入完成以后会执行这个函数
    // res:表示修改是否成功的信息,
    console.log(res);
})

4、删

// 删除一条数据,删除多条数据只需要把 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)
// })

你可能感兴趣的:(mongodb,node.js,javascript)