zoukankan      html  css  js  c++  java
  • mongoose学习 芒果

    #mongoose的使用详解#

    ##1.Scheme、model和Entity##

    Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

    Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对

    Entity : 由Model创建的实体,他的操作也会影响数据库

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

    ##2.做一些准备工作##

    Nodejs和mongodb的安装

    创建一个数据库连接

    1 var mongoose = require('mongoose');    //引用mongoose模块
    2 var db = mongoose.createConnection('localhost','test'); //创建一个数据库连接

    4.定义一个Schema

     var PersonSchema = new mongoose.Schema({
          name:String   //定义一个属性name,类型为String
        });

    5.将该Schema发布为Model

    var PersonModel = db.model('Person',PersonSchema);
    //如果该Model已经发布,则可以直接通过名字索引到,如下:
    //var PersonModel = db.model('Person');
    //如果没有发布,上一段代码将会异常

    6.用Model创建Entity

     var personEntity = new PersonModel({name:'Krouky'});
    //打印这个实体的名字看看
    console.log(personEntity.name); //Krouky

    7.我们甚至可以为此Schema创建方法

    //为Schema模型追加speak方法
    PersonSchema.methos.speak = function(){
          console.log('我的名字叫'+this.name);
    }
    var PersonModel = db.model('Person',PersonSchema);
    var personEntity = new PersonModel({name:'Krouky'});
    personEntity.speak();//我的名字叫Krouky

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

     personEntity.save();  //执行完成后,数据库就有该数据了

    9.如果要执行查询,需要依赖Model,当然Entity也是可以做到的

    PersonModel.find(function(err,persons){
          //查询到的所有person
    });

    参考资料: http://www.hubwiz.com/course/543b2e7788dba02718b5a4bd

  • 相关阅读:
    LeetCode链表解题模板
    c++中的new、operator new、placement new
    树的前序、中序、后续、层次遍历的递归和非递归解法
    c++Volatile关键词
    南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
    c++右值引用以及使用
    c++选择重载函数
    从4行代码看右值引用
    被遗忘的C结构体打包技术
    南大算法设计与分析课程OJ答案代码(4)--变位词、三数之和
  • 原文地址:https://www.cnblogs.com/hubwiz/p/4091971.html
Copyright © 2011-2022 走看看