MongoDB之Mongoose的使用

作者: LemonnYan | 来源:发表于2018-03-12 17:33 被阅读27次

    一、Mongoose简介

    Mongoose是在Node.js异步环境下对MongoDB进行便捷操作的对象模型工具。
    实际开发中会选用类似mongoose的模块来操作MongoDB数据库以提升开发效率。

    Mongoose三个重要概念:

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

    (1)Schema简述:

    这是一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型(传统意义的表结构),又或者是集合的模型骨架。基本属性类型有字符串、日期型、数值型、布尔型、null、数组、内嵌文档等。
    是Mongoose里会用到的一种数据模式,可以理解为表结构的定义;每个schema会映射到mongodb中的一个collection。
    定义一个Schema:

    var PersonSchema = new monoose.Schema({
       name:{type:String},
       age:{type:Number,default:0}  ,
       time:{type:Date,default:Date.now},
       email:{type:String,default:''}  
    })
    

    (2)Model简述:

    由Schema构造生成的模型,除了Schema定义的数据库骨架以外,还具有数据库操作的行为,类似于管理数据属性、行为的类。

    //创建模型,可以用它来操作数据库中的person集合,指的是整体。创建一个person集合
    var PersonModel = db.model("person", PersonSchema);
    

    person:数据库中的集合名称,当我们对其添加数据时如果person已经存在,则会保存到其目录下,如果未存在,则会创建person集合,然后再保存数据。有了model,也就有了操作数据的能力。
    创建一个Model模型,需要指定两点:1,集合名称;2,集合的Schema结构对象。满足这两点,就可以操作数据库啦。

    (3)Entity简述:

    由Model创建的实体,使用save方法保存数据,Model和Entity都能影响数据库的操作,但Model比Entity更具操作性。创建Entity成功后,Schema的属性就变成了Model和Entity的公共属性了。
    使用Model创建Entity

    //根据模型创建实体,是指的个体对象
    var personEntity = new PersonModel({
        name : "zf",
        age  : 6,
        email: "zf@qq.com",
        home:'beijing'
    });
    

    Schema、Model、Entity的关系:Schema生成Model,Model创造Entity,Model和Entity都可对数据库操作造成影响,但Model比Entity更具操作性。

    关于ObjectId
    主键,一种特殊而且非常重要的类型,每个Schema都会默认配置这个属性,属性名为_id,除非自己定义,方可覆盖。

        var mongoose = require('mongoose');
        var ObjectId = mongoose.Schema.Types.ObjectId;
        var StudentSchema = new Schema({}); //默认会有_id:ObjectId
        var TeacherSchema = new Schema({id:ObjectId});//只有id:ObjectId
    

    Mongoose中的数据类型:
    • String
    • Number
    • Date
    • Boolean
    • Buffer
    • ObjectId
    • Mixed
    • Array

    二、Mongoose安装

    需要配置好Node.js环境和安装好MongoDB数据库,Node.js的配置可参考Node.js入门及安装,以及MongoDB数据库的入门MongoDB入门详解

    打开cmd,定位到项目根目录,执行npm install mongoose --save命令。

    安装完成示例:


    image.png

    三、使用步骤

    step1:创建数据库连接
        var mongoose = require('mongoose');    //引用mongoose模块
        var db = mongoose.createConnection('localhost','test'); //创建一个数据库连接
    
    step2:可以监测是否有异常
    db.on('error',console.error.bind(console,'连接错误:'));
        db.once('open',function(){
          //一次打开记录
        });
    

    成功开启数据库后,就可以执行数据库相应操作

    step3:定义一个Schema
     var PersonSchema = new mongoose.Schema({
          name:String   //定义一个属性name,类型为String
        });
    
    step4:将Schema发布为Model
     var PersonModel = db.model('Person',PersonSchema); 
    
    step5:用Model创建Entity
    var personEntity = new PersonModel({name:'Krouky'});
        //打印这个实体的名字看看
        console.log(personEntity.name); //Krouky
    

    Entity是具有具体的数据库操作CRUD的

    相关文章

      网友评论

        本文标题:MongoDB之Mongoose的使用

        本文链接:https://www.haomeiwen.com/subject/onlnfftx.html