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上
複製代碼