• mongoose操作数据库


    mongoose模块

    Mongoose简介

        Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用。
        Node是什么模型? 对象
        官方文档:https://www.npmjs.com/package/mongoose
        http://mongoosejs.com/
    

    Mongoose的操作流程

    • 安装mongoose
        npm install mongoose -D
        cnpm i mongoose -D/-S
    
    • 连接数据库

    使用mongoose连接数据库的前提条件是:

    1、mongo数据库已经运行。
    2、已经安装了mongoose包

        var mongoose = require("mongoose");
        // 连接字符串格式为mongodb://主机/数据库名
        mongoose.connect('mongodb://localhost/students');
    

    上面这句的意思是连接到本地的mongodb的students 数据库。

    扩展:

    // 连接本地mongodb ,本机的ip 127.0.0.1,端口:27017 数据库:students
    mongoose.connect("mongodb://127.0.0.1:27017/students",function(err){
       if(!err){//如果连接成功,则打印出connected to Mongodb
          console.log("connected to Mongodb");
       }else{
          throw err;//如果连接失败,则抛出异常
       }
    });
    
    • 新增数据
      先讲解一个概念 Schema:

    它可以理解为数据库模型骨架,可以看作工厂中模具一样,好比一个茶杯,喝水是茶杯最终的功能,茶杯本身就像是Model,那么茶杯的批量生产是需要靠工厂的模具成型的。Schema不仅定义了文档结构和使用性能,还可以有扩展插件、实例方法、静态方法、复合索引、文档生命周期钩子。

    Schema  :  一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力   钱的电板
    Model   :  由Schema发布生成的模型,具有抽象属性和行为的数据库操作对    钱的样板  
    Entity  :  由Model创建的实体,他的操作也会影响数据库                     钱
    

    存储数据步骤:定义Schema (骨架) > 创建model(模型)> Entity实例化方法。

    var Schema = mongoose.Schema;
    //通过Schema创建一个模式NewsSchema  
    var studentSchema  = new Schema({      
         name: String,
         age: String
    });
    

    studentSchema 类型有哪些:

    String
    Number
    Date
    Buffer
    Boolean
    Mixed
    ObjectId
    Array
    
    //通过模式studentSchema  创建一个模型studentModel 
    var studentModel = mongoose.model("students",studentSchema  );
    
    var instance1 = new studentModel (); 
    instance1.name="tangyan";
    instance1.age="18";
    //通过save方法保存
    instance1.save(function(err){
        if (err) {
           console.log('保存失败');  
           return;
        }
     });
    
    • 删除数据
      思路:

    1、删除数据首先要知道删除哪一条信息,需要知道信息的id.
    2、把对应id的数据查询出来,执行remove方法
    假如我们要删除id=”57e24521a755e1154039a403”的数据。

    var id=”57e24521a755e1154039a403”; 
    studentQueryModel.findById(id,function(err,doc){
       if(!doc){
          return next(new NotFound("Doc not found"))
       }else{
          doc.remove(function(){
             console.log('删除成功');
          })
       }
    });
    
    • 修改数据
      修改数据的思路:先把对应id的数据查询出来,对需要修改的字段重新赋值,然后执行save方法保存。
      假如我们要修改id=”57e24521a755e1154039a403”的数据。
    var id=”57e24521a755e1154039a403”; 
    
    studentQueryModel.findById(id,function(err,doc){
       //console.log(doc);
       doc.name="xiaotangyan" ;//把name修改为xiaotangyan
       doc.save(function(err){
          if(!err){
              console.log('修改成功');
          }else{
             throw err;
          }
       });
    });
    
    • 查询数据
      下面find第一个参数{}里面为空,表示查询所有的数据:
      docs表示查询的结果集合,可用于渲染ejs模板引擎。
    studentQueryModel.find({},function(err,docs){
    	console.log(docs);
    });
    

    功能分析

    主要包括三部分:

    新闻发布:发布新闻 一个表单,包括:新闻标题、作者、来源、发布时间、内容。
    新闻管理:新闻列表,点击修改进入修改页面,点击删除,直接删除掉。
    浏览新闻:点击新闻列表的标题进入查看新闻页面。

    系统界面的作用:填写数据和展示数据。
    mongoDB作用:保存数据。

    思考1:数据从页面到数据库要经历哪些过程?

    1、页面填写表单数据。
    2、表单提交数据到后端。(form里面指定action路径,提交方式: get或者post中任何一种)
    3、后端程序接收参数。
    4、后端程序保存数据到数据库。
    

    思考2:数据从数据库到页面要经历哪些过程?

    数据库不会主动给数据,都是浏览器先发起请求,再由后端程序去查询数据库的。

    1、浏览器发起一个请求。
    2、后端程序接收请求。
    3、后端程序查询数据库。
    4、后端程序把拿到的数据返回给浏览器。
    
  • 相关阅读:
    null in ABAP and nullpointer in Java
    SAP ABAP SM50事务码和Hybris Commerce的线程管理器
    Hybris service layer和SAP CRM WebClient UI架构的横向比较
    SAP ABAP和Linux系统里如何检查网络传输的数据量
    SAP CRM WebClient UI和Hybris的controller是如何被调用的
    SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
    SAP CRM WebClient UI和Hybris CommerceUI tag的渲染逻辑
    SAP BSP和JSP页面里UI元素的ID生成逻辑
    微信jsapi支付
    微信jsapi退款操作
  • 原文地址:https://www.cnblogs.com/xz233/p/13556175.html
Copyright © 2020-2023  润新知