mongoose的入門使用

ThinkingPanda發表於2019-09-02

讓我們面對這樣的困境, 編寫MongoDB驗證,轉換和業務邏輯是非常麻煩的. 所以我們發明了Mongoose. ——《Mongoose》中文網

就像mongoose中文網描述的那樣,“Mongoose為模型提供了一種直接的,基於scheme結構去定義你的資料模型。它內建資料驗證, 查詢構建,業務邏輯鉤子等,開箱即用”,Mongoose能對mongodb資料庫進行便捷易用且高效的操作,為開發者對資料庫中資料的增刪改查提供了一條方便的捷徑。

安裝mongoose

使用npm install mongoose來安裝mongoose

npm install mongoose
複製程式碼

基礎使用

//引入mongoose
const mongoose = require("mongoose")


// 連線資料庫
mongoose.connect("mongodb://127.0.0.1:27017/myapp")

let UserSchema = mongoose.Schema({
    username: String,
    age: Number,
    status: Number
})

let User = mongoose.model("user", UserSchema)

let u = new User({
    username: "wangcai",
    age: 100,
    status: 1
})

u.save(function (err) {
    if (err) {
        console.log(err)
    }
    console.log("資料儲存成功了...")
})
複製程式碼

執行結果:

mongoose的入門使用
資料庫中:
mongoose的入門使用

需要注意的是

  • model的第一個引數,首字母要大寫
  • model可以有第三個引數,let User = mongoose.model("user", UserSchema, "admin"),第三個引數用來指定集合名
  • 當程式呼叫到save()時,才向資料庫中寫入資料
  • 在定義Schema時,可以指定預設值,例如:age:{ type:Number, default:10 // 預設引數 }

查詢

//查詢示例
const mongoose = require("mongoose")
mongoose.connect("mongodb://127.0.0.1:27017/myapp")
let UserSchema = mongoose.Schema({
    name: String,
    age: Number
})
let ThisModel = mongoose.model("User", UserSchema)
let Obj = new ThisModel({
    name: "xiaoqiang",
    age: 10
})
Obj.save(function (err) {
    if (err) {
        console.log(err)
    }
    console.log("資料儲存成功了...")
})

//查詢
ThisModel.find({}, function (err, doc) {
    if (err) {
        console.log(err)
    }
    console.log(doc)
})
複製程式碼

查詢結果:

mongoose的入門使用

更新

更新前:

mongoose的入門使用

//更新示例
const mongoose = require("mongoose")
mongoose.connect("mongodb://127.0.0.1:27017/myapp")
let UserSchema = mongoose.Schema({
    name: String,
    age: Number
})
let ThisModel = mongoose.model("User", UserSchema)
ThisModel.updateOne({ _id: "5d6cd43be93a8e41146ded63" }, { age: "1000" }, function (err, data) {
    if (err) console.log(err)
    console.log(data)
})
複製程式碼

輸出結果:

mongoose的入門使用

資料庫更新:

mongoose的入門使用

刪除

//刪除示例
const mongoose = require("mongoose")
mongoose.connect("mongodb://127.0.0.1:27017/myapp")
let UserSchema = mongoose.Schema({
    name: String,
    age: Number
})
let ThisModel = mongoose.model("User", UserSchema)
ThisModel.deleteOne({ _id: "5d6cd43be93a8e41146ded63" }, function (err, data) {
    if (err) console.log(err)
    console.log(data)
})
複製程式碼

輸出結果:

mongoose的入門使用

結束

本文是學習過程中的小小總結,難免有所不足之處,希望能對朋友們的學習有幫助。