中文文檔地址: https://cn.mongoosedoc.top/docs/guide.htmlhtml
Mongoose是MongoDB的一個對象模型工具,封裝了MongoDB對文檔的的一些增刪改查等經常使用方法,讓NodeJS操做Mongodb數據庫變得更加靈活簡單,換句話說就是Mongoose是一個工具,這個工具可讓nodejs操做MongoDB更加方便node
在學習以前咱們須要注意Mongoose的一個特色,那就是經過關係型數據庫的思想來設計非關係型數據庫mongodb
1.安裝mongoose數據庫
npm install mongoose --save
2.鏈接數據庫npm
// 引入mongoose const mongoose = require('mongoose') // 鏈接數據庫 mongoose.connect('mongodb://testadmin:nodeing123@127.0.0.1:27017/test', {useNewUrlParser: true})
3.定義Schema數組
什麼是Schema呢?Schema是mongoose裏用到的一種數據模式,能夠理解爲表結構的定義,舉個例子:當咱們使用關係型數據庫MySQL的時候,咱們須要先肯定數據庫字段,每一個字段的類型、是否爲空、默認值等等,Schema的定義就是起相似的做用,好比,我須要給user這個文檔定義Schemamongoose
var UserSchema = mongoose.Schema({ name: String, age: Number })
上面就規定了user文檔中存的name值必須爲字符串類型,age必須爲數字類型ide
下面是支持的類型:工具
String 字符串 Number 數字 Date 日期 Buffer 二進制 Boolean 布爾值 Mixed 混合類型 ObjectId 對象ID Array 數組
完整步驟代碼:學習
// 1.引入mongoose const mongoose = require('mongoose') // 2.鏈接數據庫 mongoose.connect('mongodb://testadmin:nodeing123@127.0.0.1:27017/test', {useNewUrlParser: true}) // 3.定義Schema,例如:如今須要操做users集合(表),咱們就須要給這個集合定義一個對應的Schema let UserSchema = mongoose.Schema({ name: String, age: Number, status: Number })
前面咱們定義的Schema只是約定了一種數據模式,並不具有操做數據庫的能力,若是想要操做數據庫,還須要定義模型:
let User = mongoose.model('User', UserSchema)
經過上面的代碼,咱們建立出了一個User模型,這個User 模型才具備操做User集合(表)的能力
定義模型注意事項:一、model裏面第一個參數的命名要首字母大寫 二、這個模型的名字要和數據庫中集合(表)的名字對應,默認的對應規則爲:若是模型名字最後一位是字母,那麼對應數據庫中的名字會加s,例如:模型名字爲User,那麼對應的數據庫中的集合名字爲users,若是模型名字最後一個是數字,那麼和數據庫中的集合名字不用加s,例如:模型名字爲User1,對應的數據庫中的集合名字爲user1 三、能夠指定模型名稱關聯的集合,須要寫成下面這樣
// 指定User模型 對應數據庫中user集合 let User = mongoose.model('User', UserSchema, 'user')
// 1.引入mongoose const mongoose = require('mongoose') // 2.鏈接數據庫 mongoose.connect('mongodb://testadmin:nodeing123@127.0.0.1:27017/test', {useNewUrlParser: true}) // 3.定義Schema,例如:如今須要操做user集合(表),咱們就須要給這個集合定義一個對應的Schema let UserSchema = mongoose.Schema({ name: String, age: Number, status: Number }) // 4.建立模型 let User = mongoose.model('User', UserSchema) // 5.增長數據 let UserObj = new User({ name: '張三', age: 20, status: 0 }) UserObj.save()
// 1.引入mongoose const mongoose = require('mongoose') // 2.鏈接數據庫 mongoose.connect('mongodb://testadmin:nodeing123@127.0.0.1:27017/test', {useNewUrlParser: true}) // 3.定義Schema,例如:如今須要操做user集合(表),咱們就須要給這個集合定義一個對應的Schema let UserSchema = mongoose.Schema({ name: String, age: Number, status: Number }) // 4.建立模型 let User = mongoose.model('User', UserSchema) // // 5.增長數據 // let UserObj = new User({ // name: '張三', // age: 20, // status: 0 // }) // UserObj.save() // 6.查詢數據 // User.find({}, (err, result) => { // if (err) { // console.log(err) // return // } // console.log(result) // })
// 1.引入mongoose const mongoose = require('mongoose') // 2.鏈接數據庫 mongoose.connect('mongodb://testadmin:nodeing123@127.0.0.1:27017/test', {useNewUrlParser: true}) // 3.定義Schema,例如:如今須要操做user集合(表),咱們就須要給這個集合定義一個對應的Schema let UserSchema = mongoose.Schema({ name: String, age: Number, status: Number }) // 4.建立模型 let User = mongoose.model('User', UserSchema) // // 5.增長數據 // let UserObj = new User({ // name: '張三', // age: 20, // status: 0 // }) // UserObj.save() // 6.查詢數據 // User.find({}, (err, result) => { // if (err) { // console.log(err) // return // } // console.log(result) // }) // 7.修改數據 User.updateOne({name: "張三"}, {age: 42}, (err, result) => { if (err) { console.log(err) return } console.log("更新成功") })
// 1.引入mongoose const mongoose = require('mongoose') // 2.鏈接數據庫 mongoose.connect('mongodb://testadmin:nodeing123@127.0.0.1:27017/test', {useNewUrlParser: true}) // 3.定義Schema,例如:如今須要操做user集合(表),咱們就須要給這個集合定義一個對應的Schema let UserSchema = mongoose.Schema({ name: String, age: Number, status: Number }) // 4.建立模型 let User = mongoose.model('User', UserSchema) // // 5.增長數據 // let UserObj = new User({ // name: '張三', // age: 20, // status: 0 // }) // UserObj.save() // 6.查詢數據 // User.find({}, (err, result) => { // if (err) { // console.log(err) // return // } // console.log(result) // }) // 7.修改數據 // User.updateOne({name: "張三"}, {age: 42}, (err, result) => { // if (err) { // console.log(err) // return // } // console.log("更新成功") // }) // 8.刪除數據 User.deleteOne({name: '張三'}, (err, result) => { if (err) { console.log(err) return } console.log(result) })
let UserSchema = mongoose.Schema({ name: String, age: Number, status: Number, gender: { type: String, default: '男' } })