nodejs04

  • Post author:
  • Post category:其他


//01_mongoDB.js

/*

数据库:

1. 关系型数据库: mySql, 操作数据库使用的SQL语句实现的

2. 非关系型数据库: mongoDB, 是通过JS的语法(面向对象)操作数据库

数据库, 表, 字段

mongoDB数据的使用步骤:

1. 安装node里的mongoDB数据库核心插件: mongoose

2. 指定数据的数据的存放路径

2.1 在目标位置新建一个空文件夹

2.2 通过命令行cd到mongoDB安装目录里面的bin文件下

2.3 指定数据库存放位置,命令: mongod –dbpath=目标空文件夹路径

2.4 启动数据库, 命令: mongo

*/


const express = require(“express”);


const bp = require(“body-parser”);


const cors = require(“cors”);


const app = express();


app.use(bp.urlencoded({extended:false}));


app.use(bp.json());


app.use(cors());

app.listen(4455, function(){

console.log(“监听4455端口…”);

});


// 1. 引入mongoose插件

const mongoose = require(“mongoose”);


/* 2. 链接数据库


2.1 需要用户名密码 mongoose.connect(‘mongodb://username:password@host:port/database?options…’);


2.2 不需要用户名密码 mongoose.connect(‘mongodb://host:port/database?options…’);

*/

mongoose.connect(“mongodb://root:123456@localhost:27017/DB0714”);

//3. 监听链接数据库的结果

mongoose.connection.on(“open”, function(){

console.log(“数据库连接成功!”);

/* 数据库连接成功之后, 才可以对数据库做作为的CRUD操作 */

// 创建model, 指定存储数据的字段及数据类型

const { Schema } = mongoose;

const personSchema = new Schema({

name:String,

age:Number,

sex:String

}, {collection:”person”});

const personModel = mongoose.model(“person”, personSchema);

app.post(“/create”, function(req,res){

// 添加数据

personModel.create({

name:req.body.username,

age:req.body.age,

sex:req.body.sex

}, function(error, result){

if(!error){

res.send({msg:”添加数据成功!”, result});

}else {

res.send({msg:”添加数据失败!”, error});

}

});

});

app.post(“/delete”, function(req,res){

// 数据库删除数据

personModel.deleteMany({_id:req.body.deleteId}, function(error, result){

if(!error){

res.send({result});

}else {

res.send({error});

}

});

});

app.post(“/update”, function(req,res){

personModel.updateOne({_id:”62cf9419f8da34e82664a885″}, {$set:{age:22}}, function(error, result){

if(!error){

res.send({msg:”修改成功”, result});

}else {

res.send({msg:”修改失败!”, error});

}

});

});

app.get(“/retrieve”, function(req,res){

//获取所有数据

/*

find(查询条件(可选), 想要获取的字段(可选), 筛选条件(可选), 回调函数)

*/

personModel.find(function(error, result){

if(!error){

res.send(result);

}else {

res.send(error);

}

});

// 通过查询条件设置精确值查询数据

// personModel.find({sex:”男”, age:50}, function(error, result){

//     if(!error){

//         res.send(result);

//     }else {

//         res.send(error);

//     }

// });

/* 通过查询条件设置区间值查询数据

$gt 大于

$lt 小于

$gte 大于等于

$lte 小于等于

$ne 不等于

$in 包含

$nin 不包含

*/

// personModel.find({sex:”男”, age:{$gt:20, $lt:60}}, function(error, result){

//     if(!error){

//         res.send(result);

//     }else {

//         res.send(error);

//     }

// });

// personModel.find({sex:{$nin:[“男”, “女”]}}, function(error, result){

//     if(!error){

//         res.send(result);

//     }else {

//         res.send(error);

//     }

// });

//想要获取的字段  0表示不获取某个字段, 不写的默认获取

// personModel.find(null, {__v:0, sex:0}, function(error, result){

//     if(!error){

//         res.send(result);

//     }else {

//         res.send(error);

//     }

// });

//想要获取的字段  1表示获取某个字段, 不写的默认不获取, 但是_id, 不写也会获取到, 如果不想要, 要显式的设置为0

// personModel.find({sex:”男”}, {name:1, _id:0}, function(error, result){

//     if(!error){

//         res.send(result);

//     }else {

//         res.send(error);

//     }

// });

/*

筛选条件

1. sort 排序 1:升序, -1:降序

2. skip 跳过

3. limit 限制

优先级: sort->skip->limit

*/

//    personModel.find(null, { __v:0 }, {skip:2, sort:{age:-1}, limit:3}, function(error, result){

//         if(!error){

//             res.send(result);

//         }else {

//             res.send(error);

//         }

//     });

});

});



版权声明:本文为m0_45077860原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。