资讯专栏INFORMATION COLUMN

使用 mongoose 操作 mongodb 增删改查

renweihub / 2628人阅读

摘要:使用操作的测试文件连接数据库引入连接指定的数据库只有数据库是变化的获取连接对象绑定连接完成的监听用来提示连接成功得到对应特定集合的字义描述文档结构定义与集合对应,可以操作集合通过或其实例对集合数据进行操作通过实例的添加数据通过的查询多个或一

使用 mongoose 操作 mongodb 的测试文件

连接数据库
1.1 引入 mongoose
1.2 连接指定的数据库(URL 只有数据库是变化的)
1.3 获取连接对象
1.4 绑定连接完成的监听(用来提示连接成功)

得到对应特定集合的 Model
2.1 字义 Schema(描述文档结构)
2.2 定义 Model(与集合对应,可以操作集合)

通过 Model 或其实例对集合数据进行 CRUD 操作
3.1 通过 Model 实例的 save() 添加数据
3.2 通过 Model 的 find()/findOne() 查询多个或一个数据
3.3 通过 Model 的 findByIdAndUpdate() 更新某个数据
3.4 通过 Model 的 deleteOne() 删除匹配的数据

*/

下载mongoose依赖包

npm install --save mongoose 

下载md5加密依赖包

npm install --save blueimp-md5
下面的代码位置: db_test.js
// 引入 md5 依赖
const md5 = require("blueimp-md5")
1. 连接数据库
// 1.1 引入 mongoose
const mongoose = require("mongoose")
// 1.2 连接指定的数据库(URL 只有数据库是变化的)
mongoose.connect("mongodb://localhost:27017/zp_test", {useNewUrlParser: true})
// 1.3 获取连接对象
const conn = mongoose.connection
// 1.4 绑定连接完成的监听(用来提示连接成功)
conn.on("connected", function () {
  console.log("数据库连接成功!")
})
2. 得到对应特定集合的 Model
// 2.1 字义 Schema(描述文档结构)
const userSchema = mongoose.Schema({
  username: {type: String, require: true}, // 用户名
  password: {type: String, required: true}, // 密码
  type: {type: String, required: true} // 用户类型: 求职者/老板
})
// 2.2 定义 Model(与集合对应,可以操作集合)
const UserModel = mongoose.model("users", userSchema) // 集合名: users
3. 通过 Model 或其实例对集合数据进行 CRUD 操作
 3.1 通过 Model 实例的 save() 添加数据
function testSave() {
  // user 数据对象
  const user = {
    username: "mandy",
    password: md5("1234"),
    type: "求职者"
  }
  // 创建 Model 实例
  const userModel = new UserModel(user)
  // 或者像下面这样添加数据
  // const userModel = new UserModel({username: "Tom", password: md5("3333"), type: "老板"})
  
  // 保存到数据库
  userModel.save(function (err, user) {
    console.log("save", err, user)
  })
}
// testSave()

 3.2 通过 Model 的 find()/findOne() 查询多个或一个数据
function testFind() {
  // 查找多个
  UserModel.find(function (err, users) { // 如果有匹配返回一个[user, user...], 如果没有一个匹配的返回[]
    console.log("find()", err, users)
  })
  // 查找一个
  UserModel.findOne({_id: "5cdf99ebf3539334948ae2c8"}, function (err, user) { // 如果有匹配返回的是一个user
    console.log("findOne()", err, user)
  })
}
// testFind()

 3.3 通过 Model 的 findByIdAndUpdate() 更新某个数据
function testUpdate() {
  UserModel.findByIdAndUpdate({_id: "5cdfacc55684652a08b49014"}, {username: "一个老板"}, function (err, user) {
    console.log("findByIdAndUpdate()", err, user)
  })
}
// testUpdate()

 3.4 通过 Model 的 remove() 删除匹配的数据
function testDelete() {
  UserModel.deleteOne({_id: "5cdf9d761a1c050c70bc0d09"}, function (err, result) {
    console.log("deleteOne()", err, result)
  })
}
// testDelete()

运行:

node db_test.js

可以在mongodb的可视化工具中查看效果.

可视化工具 webstorm中的 Mongo Plugin 插件 Robo 3T

下载地址: https://robomongo.org/download

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19530.html

相关文章

  • 使用express+mongoosemongodb实现删改操作

    摘要:项目地址写在开头本文主要分享我如何使用对实现增删改查操作,感谢社区所有精品文章的帮助,以及的开源项目对我的启发。我们这个项目是建立一个班级学生管理系统,能够对学生的姓名及学号进行增删改查的操作。 项目地址:https://github.com/jrainlau/mongoose_cru... 写在开头 本文主要分享我如何使用express+mongoose对mongodb实现增删改查...

    Markxu 评论0 收藏0
  • mongoDB初阶系列三:mongoose

    摘要:前言上篇初阶系列二中的增删改查中讲解了用驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用更顺畅的操控。查下面这段代码对集合进行搜索,并输出每项任务的唯一和描述,等打印完成后,关闭数据库连接。 前言 上篇 mongoDB初阶系列二:node中的增删改查 中讲解了用node驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用mongoose更顺畅的操...

    Null 评论0 收藏0
  • mongoDB初阶系列三:mongoose

    摘要:前言上篇初阶系列二中的增删改查中讲解了用驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用更顺畅的操控。查下面这段代码对集合进行搜索,并输出每项任务的唯一和描述,等打印完成后,关闭数据库连接。 前言 上篇 mongoDB初阶系列二:node中的增删改查 中讲解了用node驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用mongoose更顺畅的操...

    yzzz 评论0 收藏0
  • node express mongoose简单实现全栈之删改

    摘要:作为一个有志向的前端,怎么能不搞搞全栈呢。。。地址欢迎大家多多交流前端技术啊,如果大家喜欢的话,请给我一个小小的哦 作为一个有志向的前端,怎么能不搞搞全(zhuang)栈(bi)呢。。。说搞咱就搞啊,后端就用node,数据库就用mongodb,前端呢,呃,再搞个node的web框架express,思路搞定,开始搭建我们的环境,搭建之前还是先看看我们的目标和成果 项目的目标和成果 sh...

    AndroidTraveler 评论0 收藏0
  • mongoose 链接数据库,删改

    摘要:根据个人编码习惯,仅供参考如中途看的有点蒙圈,可以转到官网查看引入模块连接数据库链接状态数据库链接成功为了查看是否链接成功所以做一个回调创建模式对象例将赋值给变量创建对象官网创建通过来创建代表的是数据库中的集合,通过才能对数据库进行操作可在 根据个人编码习惯,仅供参考 如中途看的有点蒙圈,可以转到官网查看 引入模块 var mongoose = require(mongoose); ...

    shleyZ 评论0 收藏0

发表评论

0条评论

renweihub

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<