mongoose的入门使用

1,128 阅读2分钟

让我们面对这样的困境, 编写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)
})

输出结果:

结束

本文是学习过程中的小小总结,难免有所不足之处,希望能对朋友们的学习有帮助。