nodejs04

3 篇文章 0 订阅

//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);

    //         }

    //     });

    });

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值