讓我們面對這樣的困境, 編寫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("資料儲存成功了...")
})
複製程式碼
執行結果:
資料庫中:需要注意的是:
- 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)
})
複製程式碼
查詢結果:
更新
更新前:
//更新示例
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)
})
複製程式碼
輸出結果:
資料庫更新:
刪除
//刪除示例
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)
})
複製程式碼
輸出結果:
結束
本文是學習過程中的小小總結,難免有所不足之處,希望能對朋友們的學習有幫助。