mongoose学习笔记

在使用nodejs+mongodb+express搭建个人博客的时候,mongodb使用的是2.2.3版本,虽然足够使用了,但也有一些不尽人意的地方,所以在后期还是决定学习一下mongoose,使用mongoose来搭建这个个人博客。

1.连接数据库

var dbUrl = 'mongodb://localhost:27017/Cblog';//我的数据库名字为Cblog
mongoose.Promise = global.Promise;
mongoose.connect(dbUrl,{ useNewUrlParser: true });

2.介绍一下mongoose中的几个重要的基本概念(源地址:https://blog.csdn.net/yakie/article/details/79035771

  • Schema: 相当于一个数据库的模板. Model可以通过mongoose.model 集成Schema的基本属性内容. 当然也可以选择不继承.
  • Model: 基本文档数据的父类,通过集成Schema定义的基本方法和属性得到相关的内容.
  • instance: 这就是实实在在的数据了. 通过 new Model()初始化得到.

Schema用来定义数据库文档结构,数据库有什么字段、字段是什么类型、默认值、主键之类的信息。除了定义结构外,还能定义文档的实例方法,静态模型方法,复合索引,中间件等。详情查看mongoose官方文档。

Models 是从 Schema 编译来的构造函数。 它们的实例就代表着可以从数据库保存和读取的 document。 从数据库创建和读取 document 的所有操作都是通过 model 进行的。

通过一个demo理解mongoose操作数据的流程

    //定义一个schema
    let Schema = mongoose.Schema({
        category:String,
        name:String
    });
    Schema.methods.eat = function(){
        console.log("I've eatten one "+this.name);
    }
    //继承一个schema
    //.modle()第一个参数是跟 model 对应的集合( collection )名字的 单数 形式。 Mongoose 会自动找到名称是 model 名字 复数 形式的 collection 。
    // 对于下例,fruit 这个 model 就对应数据库中 fruits 这个 collection。.model() 这个函数是对 schema 做了拷贝(生成了 model)。 你要确保在调用 .model() 之前把所有需要的东西都加进 schema 里了
    let Model = mongoose.model("fruit",Schema);
    //生成一个document
    let apple = new Model({
        category:'apple',
        name:'apple'
    });
    //存放数据
    apple.save((err,apple)=>{
        if(err) return console.log(err);
        apple.eat();
    //查找数据
        Model.find({name:'apple'},(err,data)=>{
            console.log(data);
        })
    });

3.然后就可以对数据进行增删查改了

猜你喜欢

转载自blog.csdn.net/weixin_40135101/article/details/82050865
今日推荐