MongoDB快速入門教程 (4.2)

#4.2.Mongoose實現增刪查改 中文文檔地址: https://cn.mongoosedoc.top/docs/guide.htmlhtml

##4.2.1.Mongoose是什麼? Mongoose是MongoDB的一個對象模型工具,封裝了MongoDB對文檔的的一些增刪改查等經常使用方法,讓NodeJS操做Mongodb數據庫變得更加靈活簡單,換句話說就是Mongoose是一個工具,這個工具可讓nodejs操做MongoDB更加方便node

在學習以前咱們須要注意Mongoose的一個特色,那就是經過關係型數據庫的思想來設計非關係型數據庫mongodb

##4.2.2.準備工做 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
})

##4.2.3.增刪查改操做 前面咱們定義的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.增長數據

// 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()

##2.查詢數據

// 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)
// })

##3.更新數據

// 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("更新成功")
})

##4.刪除數據

// 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)
})

#5.定義Schema的時候能夠給默認值

let UserSchema = mongoose.Schema({
  name: String,
  age: Number,
  status: Number,
  gender: {
    type: String,
    default: '男'
  }
})

螺釘課堂視頻課程地址:http://edu.nodeing.com

相關文章
相關標籤/搜索