MongoDB-mongoose使用

mongoose介绍

  • mongoose是在node.js异步环境下对MongoDB进行便捷操作的对象模型工具

mongoose有两个特点

  • 通过关系型数据库的思想来设计非关系型数据库
  • 基于mongodb驱动,简化操作

用法

  • 安装

    • npm i mongoose --save
  • 引入 mongoose 并连接数据库

    const mongoose = require('mongoose')
    mongoose.connect('mongodb://localhost/test')
    // 有密码
    // mongoose.connect('mongodb://weitian:test@localhost/test')
    
  • 操作表(集合)前,先定义 Schema

    • 数据库中的 Schema 为数据库对象的集合。schema 是 mongoose 中会用到的一种数据模式,可以理解为表结构的定义(每个 schema 会映射到 MongoDB中的一个collection,它不具备操作数据库的能力)

      • Schema里的对象要和数据库表里面的字段相对应
      let UserSchema = mongoose.Schema({
              
              
          name: String,
          age: Number,
          status: Number
      })
      
  • 创建数据模型后可对数据库进行操作

    • 定义好Schema后,下面生成Model。model是由schema生成的模型,可以对数据库进行操作。
    • mongoose.model 里面可以传入两个参数,也可以传入三个参数
      • mongoose.model(参数1:模型名称(首字母大写), 参数2:Schema,参数3:数据库集合名称)
    // 默认操作 articles 集合
    let Article = mongoose.model('Article', ArticleSchema)
    
    // 默认操作 article 集合
    let Article = mongoose.model('Article', ArticleSchema, 'article')
    
  • 查询

    const ArticleSchema = mongoose.Schema({
          
          
        title: String,
        author: String,
    })
    const Article = mongoose.model('Article', ArticleSchema, 'article')
    
    Article.find({
          
          }, function (err, doc) {
          
          
        if (err) {
          
          
            return
        }
        console.log(doc)
    })
    
  • 增加数据

    // 实例化模型 通过实例化模型创建增加的数据
    // 实例.save()
    const author = new Article({
          
          
        title:"火影忍者",
        author:"岸本齐史"
    })
    // 执行增加操作
    author.save((err) => {
          
          
        if (err) {
          
          
            return
        }
        console.log('增加成功')
    })
    
  • 更新数据

    // 直接使用model
    Article.updateOne({
          
          title:"火影忍者"},{
          
          title:"测试"},(err, res) => {
          
          
        if (err) {
          
          return}
        console.log('数据更新成功')
    })
    
  • 删除数据

    // 直接使用model
    Article.deleteOne({
          
          _id:"5ffbac640ee6b03ab8a19eac"},(err, result) => {
          
          
        if (err) {
          
          return}
        console.log('数据删除成功')
    })
    

猜你喜欢

转载自blog.csdn.net/it_xcr/article/details/112647218