美文网首页
基本操作mongoose三大核心对象:Schema,Model,

基本操作mongoose三大核心对象:Schema,Model,

作者: 似朝朝我心 | 来源:发表于2020-10-31 00:47 被阅读0次
    • 在mongoose里面有3个核心对象,分别是Schema,Model,Document,这三个对象是有先后顺序的,先有Schema再有Model,然后才有Document。
    • Document对象可有可无,Schema和Model才是主要的。

    1.首先引入mongoose模块。

    import mongoose from 'mongoose';//使用ES6语法引入,替换了require,但需要安装babel转译,而node环境支持require
    const { Schema } = mongoose;
    

    2.搭建mongodb环境

    mongoose.connect('mongodb://127.0.0.1:27017/mytest', {useNewUrlParser: true, useUnifiedTopology: true}); 
    mongoose.connection.once("open", () => {
        console.log(`数据库已连接成功,Server is running at:http://127.0.0.1:27017`)
    })
    

    3.Schema(限制模式对象)。

    //创建一个Schema对象
    const stuSchema = new Schema({
        //自定义Schema限制对象
        name: String, 
        age: Number,
        //gender: String,//等同于下面这种对象写法,不过下面的这种写法更灵活
        gender: {
            type: String,
            default: "female"//设置默认值
        },
        address: String
      });
    

    小结:创建完Schema对象相当于完成创建了一个数据库。

    4.创建Model对象模型。(Model对象相当于数据库中的集合)

    • 它依赖Schema来创建Model。
    • Model对象代表的是数据库中的(collection),通过Model才能对数据库进行操作。
    • 通过mongoose.model(modelName, schema)方法创建一个Model,第一个参数是modelName,代表的是你要和数据库中映射的集合名(默认是复数形式),第二个参数schema代表的是你刚刚创建的schema对象名。
    const stuModel = mongoose.model('student', stuSchema);
    

    模型创建完成后,就差最后一个Document对象操作了,我们接下来就需要借助模型来创建文档了。

    5.创建Document文档对象。

    方法:Model.create(doucment,callback)



    回调函数写完后,然后填充我们的文档对象即可。

    //向数据库中插入一个文档
    stuModel.create({
        name: "张三",
        age: 20,
        gender: "male",
        address: "深圳"
    },err => {
        if (!err) {//如果没有报错,则执行下面的语句
            console.log("文档插入成功")
        }
    })
    

    6.完整代码如下。

    //这里就不使用ES6的inport导入语法了,因为我们没有使用脚手架,
    //所以需要额外安装babel转译插件,还要配置参数等,太过麻烦。
    //我们这里直接使用node提供的require导入模块即可。
    const mongoose = require('mongoose')
    const Schema = mongoose.Schema
    
    //搭建mongodb环境
    mongoose.connect('mongodb://127.0.0.1:27017/mytest', {useNewUrlParser: true, useUnifiedTopology: true}); 
    mongoose.connection.once("open", () => {
        console.log(`数据库已连接成功,Server is running at:http://127.0.0.1:27017`)
    })
    
    //创建一个Schema对象
    const stuSchema = new Schema({
        //自定义Schema限制对象
        name: String, 
        age: Number,
        //gender: String,//等同于下面这种对象写法,不过下面的这种写法更灵活
        gender: {
            type: String,
            default: "female"//设置默认值
        },
        address: String
      });
    
    //创建Model对象
    const stuModel = mongoose.model('students', stuSchema);
    
    //向数据库中插入一个文档
    stuModel.create({
        name: "张三",
        age: 20,
        gender: "male",
        address: "深圳"
    },err => {
        if (!err) {//如果没有报错,则执行下面的语句
            console.log("文档插入成功")
        }
    })
    

    通过node环境运行代码。



    我们可以通过打开任何一款数据库可视化工具,来查看我们当前插入的文档到底有没有显示在数据库的集合当中。


    我们可以看下下面这幅图,用来来帮助我们理清上述代码Schema,Model,Document三者在数据库当中充当的角色和一一对应关系。

    相关文章

      网友评论

          本文标题:基本操作mongoose三大核心对象:Schema,Model,

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