MongoDB 数据库的 CRUD 基础学习随笔

323 阅读2分钟

MongoDB 数据的基本概念

  • 可以有多个数据库
  • 一个数据库中可以有多个集合 collections(表)
  • 一个集合 collections 中 有多个文档 document
  • 文档结构灵活,没有任何限制
{          // itcast、test、qq这些都是数据库名称,可以 db 查看当前操作数据库
           // students、products 这些是集合 collections 创建的时候数据库会自动加 s 在后面
           // 集合 collections 里面的每一条数据都是文档 document,结构都被 Schema 所规定
  itcast: {
      students: [
        {name: '张三', age: 15},
        {name: '李四', age: 16},
        {name: '老王', age: 17},
        {name: '老李', age: 18}
      ]
      products: [
        {productName: '头部零件', num: 20, money: 1000},
        {productName: '双脚', num: 10, money: 2000},
        {productName: '身体骨架', num: 15, money: 3000},
      ]
  }
  test: {
      
  }
  qq: {
      
  }
}

node 中的mongoDB

  • 在 node 中使用 JavaScript 语言来连接和操作 MongoDB 再好不过了
  • 同时学习 MongoDb 这类非关系型数据库和 Mysql 这种传统的关系型数据库有什么区别

npm 下载插件 mongoose

  • 下载后按照官方文档给的简单例子先 var 一个变量来引用模块
  • 在 Mongoose 中,所有数据都由一个 Schema 开始创建。每一个 schema 都映射到一个 Mongodb 的集合(collection),并定义了该集合(collection)中的文档(document)的形式。
var mongoose = require('mongoose')              // 引用 mongoose 模块功能
mongoose.connect('mongodb://localhost/itcast')  // 连接 mongoDB 的数据库,如果没有就自动新建

var Schema = mongoose.Schema                    // 引用 mongoose 的结构框功能 Schema

var studentSchema = new Schema({                // var 一个变量新建一个Schema规则(表结构)
    name: {
        type: String,                          // Tip:String 和 Number 类型名称首字母大写
        required: true
    },
    gender: {
        type: Number,
        enum: [0, 1],
        default: 0
    },
    age: {
        type: Number
    }
    hobiies: {
        type: String
    }
})

// 根据 studentSchema 的规则 建立一个集合 collections 模型 model,
// 执行完下面这个代码就算 正式建立了一个集合 collections 名为 aaas,后面自动加 s 哟 
// 这个 aaas 集合里面的每一条 数据/文档/docuemnt 都有着上面新建 Schema 的规则来存储
// 将文档结构发布为模型 model
mongoose.model('aaa', studentSchema)    


// ==============================================================================
// 为了方便的操作增删改查,我们新建一个变量 User 为这个名为 aaas 的集合
var User                        
User = mongoose.model('aaa', studentSchema)

module.exports = mongoose.model('aaa', studentSchema)  // 把这个集合挂载到exports上