摘要:使用操作的测试文件连接数据库引入连接指定的数据库只有数据库是变化的获取连接对象绑定连接完成的监听用来提示连接成功得到对应特定集合的字义描述文档结构定义与集合对应,可以操作集合通过或其实例对集合数据进行操作通过实例的添加数据通过的查询多个或一
使用 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) // 集合名: users3. 通过 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
摘要:项目地址写在开头本文主要分享我如何使用对实现增删改查操作,感谢社区所有精品文章的帮助,以及的开源项目对我的启发。我们这个项目是建立一个班级学生管理系统,能够对学生的姓名及学号进行增删改查的操作。 项目地址:https://github.com/jrainlau/mongoose_cru... 写在开头 本文主要分享我如何使用express+mongoose对mongodb实现增删改查...
摘要:前言上篇初阶系列二中的增删改查中讲解了用驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用更顺畅的操控。查下面这段代码对集合进行搜索,并输出每项任务的唯一和描述,等打印完成后,关闭数据库连接。 前言 上篇 mongoDB初阶系列二:node中的增删改查 中讲解了用node驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用mongoose更顺畅的操...
摘要:前言上篇初阶系列二中的增删改查中讲解了用驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用更顺畅的操控。查下面这段代码对集合进行搜索,并输出每项任务的唯一和描述,等打印完成后,关闭数据库连接。 前言 上篇 mongoDB初阶系列二:node中的增删改查 中讲解了用node驱动来对数据进行增删改查,本篇将继续前进,依旧通过增删改查来讲解如何用mongoose更顺畅的操...
摘要:作为一个有志向的前端,怎么能不搞搞全栈呢。。。地址欢迎大家多多交流前端技术啊,如果大家喜欢的话,请给我一个小小的哦 作为一个有志向的前端,怎么能不搞搞全(zhuang)栈(bi)呢。。。说搞咱就搞啊,后端就用node,数据库就用mongodb,前端呢,呃,再搞个node的web框架express,思路搞定,开始搭建我们的环境,搭建之前还是先看看我们的目标和成果 项目的目标和成果 sh...
阅读 1001·2019-08-30 15:55
阅读 3443·2019-08-30 13:10
阅读 1270·2019-08-29 18:45
阅读 2349·2019-08-29 16:25
阅读 2109·2019-08-29 15:13
阅读 2424·2019-08-29 11:29
阅读 554·2019-08-26 17:34
阅读 1486·2019-08-26 13:57