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上