让我们面对这样的困境, 编写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)
})
输出结果:
结束
本文是学习过程中的小小总结,难免有所不足之处,希望能对朋友们的学习有帮助。