使用mongodb创建数据库

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 初始化express

初始化express

express
       npm 
       i
1

创建model文件夹,分别创建db文件和model文件

db文件内容

       const mongoose 
       = require(
       "mongoose")
       /
       /连接数据库
       mongoose.connect(
       "mongodb://127.0.0.1:27017/db2209")
       /
       /创建一个连接对象
       const conn 
       = mongoose.connection
       /
       /利用
       on方法监听事件  
       open 表示连接成功   
       error 表示连接失败
       conn.
       on(
       "open",()
       =
       >{
           console.log(
       "数据库连接成功");
       })
       conn.
       on(
       "error",(err)
       =
       >{
           console.log(
       "数据库连接失败",err);
       })
       module.exports 
       = mongoose

model文件内容

       /
       **
        * Schema 对象 定义集合的模式结构   命名规范 : xxxSchema
        * Model 对象  根据该对象映射成一个集合  命名规范 : xxxModel
        * Document 文档对象 定义文档 
        * 上面三个对象定义时注意顺序,先定义Schema  再定义Model 最后添加Document
        */
       /
       /
       1-连接数据库
       const mongoose 
       = require(
       "./1-利用mongoose连接数据库")
       /
       /
       2-定义Schema对象  定义文档的模式结构
       const userSchema 
       = new mongoose.Schema({
           username : 
       String, 
       /
       /mongoose中常用的数据类型 : ObjectID  
       String 
       Number 
       Boolean 
       Date Array
           password : 
       String,
           birth : 
       Date,
           sex : 
       Boolean
       })
       /
       /
       3-定义Model对象 model( 实际的model名称 , 该model对应的Schema对象 , 实际的集合名称  )
       /
       /注意 : 第三个参数可以省略的,如果省略了,实际的集合名称就是 参数
       1 的复数形式
       /
       /                          如果不省略第三个参数,建义 实际的集合名称和实际的model名称一样 
       const userModel 
       = mongoose.model( 
       "user" , userSchema , 
       "user")
配置跨域
       // 下载cors,在app.js文件配置跨域、图片
       var cors = 
       require(
       'cors')
       app.
       use(
       cors())
       app.
       use(
       "/upload",express.
       static(
       "upload"))
展示、增删改
       var express 
       = require(
       'express');
       var router 
       = express.Router();
       var mul 
       = require(
       'multiparty')
       var {userModel,bookModel} 
       = require(
       '../model/model')
       /
       * 
       GET home 
       page. 
       *
       /
       /
       / 图片
       router.post(
       '/pic', 
       function(req, res, 
       next) {
         let form 
       = new mul.Form()
         form.uploadDir 
       = 
       "upload"
         form.parse(req,(ree,formdata,imgdata)
       =
       >{
           res.
       send({
       code:
       200,
       pic:
       "http://localhost:3000/"
       +imgdata.
       file[
       0].path
           })
         })
       });
       /
       / 展示
       router.post(
       '/login',async 
       function(req, res, 
       next) {
         let 
       data 
       = req.body
         console.log(
       data);
         let loginn 
       = await userModel.find({name:
       data.name})
         console.log(loginn); 
       if(
       data.name 
       =
       = 
       "admin"){
       if(
       data.pw 
       =
       =
       = 
       "123456"){
             res.
       send({
       code:
       200,
               msg:
       "登陆成功"
             })
           }
       else{
             res.
       send({
       code:
       201,
               msg:
       "密码错误"
             })
           }
         }
       else{
           res.
       send({
       code
:
       202,
             msg:
       "用户不存在"
           })
         }
       });
       router.
       get(
       '/list',async 
       function(req, res, 
       next) {
         let 
       key 
       = req.query.
       key
         let cp 
       = req.query.cp
         let ps 
       = req.query.ps
         let datashow 
       = await bookModel.find({
       status:
       false})
         let hsz 
       = await bookModel.find({
       status:
       true})
         res.
       send({
       code:
       200,
           hsz,
           datashow,
         });
       });
       /
       / 添加
       router.post(
       '/add',async 
       function(req, res, 
       next) {
         let body 
       = req.body
         await bookModel.create(body)
         res.
       send({
       code:
       200,
           msg:
       "添加成功"
         });
       });
       /
       / 修改
       router.post(
       '/up',async 
       function(req, res, 
       next) {
         let body 
       = req.body
         await bookModel.updateOne({_id:body._id},body)
         res.
       send({
       code:
       200,
           msg:
       "修改成功"
         });
       });
       router.post(
       '/uphsz',async 
       function(req, res, 
       next) {
         let body 
       = req.body
       /
       / console.log(body);
         await bookModel.updateOne({_id:body._id},body)
         res.
       send({
       code:
       200,
           msg:
       "修改成功"
         });
       });
       /
       / 删除和删除选中
       router.
       get(
       '/del',async 
       function(req, res, 
       next) {
         let _id 
       = req.query.id
         await bookModel.deleteOne({_id})
         res.
       send({
       code:
       200,
           msg:
       "删除成功"
         });
       });
       router.post(
       '/delc', 
       function(req, res, 
       next) {
         let body 
       = req.body
         console.log(body);
         body.forEach(async (item) 
       =
       > {
           await bookModel.deleteOne({_id:item._id})
         })
         res.
       send({
       code:
       200,
           msg:
       "删除选中成功"
         });
       });
       module.exports 
       = router;


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4天前
|
存储 SQL NoSQL
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?
|
6天前
|
JSON NoSQL MongoDB
理解Nosql数据库的mongodb
【5月更文挑战第5天】MongoDB是2009年发布的一款通用型NoSQL数据库,结合了关系模型和NoSQL的优点,适用于各种现代应用。其特点包括图形界面、数据服务、云基础设施集成(AWS, Azure, Google Cloud)。它具备全面的查询能力、ACID事务、可调整的一致性保证,并有多语言驱动及工具,可在任何地方运行。
66 4
|
6天前
|
存储 NoSQL MongoDB
MongoDB数据库转换为表格文件的Python实现
MongoDB数据库转换为表格文件的Python实现
39 0
|
6天前
|
存储 NoSQL 关系型数据库
Percona XtraBackup是否支持MongoDB数据库备份?
【5月更文挑战第13天】Percona XtraBackup是否支持MongoDB数据库备份?
33 1
|
2天前
|
存储 NoSQL MongoDB
使用mongodb数据库实例
【5月更文挑战第9天】MongoDB中的集合类似关系数据库的表,但不强制模式,允许嵌入式文档以实现更灵活的数据布局。安装MongoDB在Ubuntu上涉及添加源列表和更新,CentOS则需创建配置文件。MongoDB支持备份和恢复,以及全文搜索。其灵活模式和动态模式减少了开发中的复杂性,但并非无模式,大部分数据仍具结构化特点。
79 2
|
6天前
|
NoSQL atlas MongoDB
Nosql数据库MongoDB的使用场景
【5月更文挑战第5天】 MongoDB是全球性的多云数据库,可在私有、公共和混合云中运行,提供高可用性、扩展性和合规性。 安全特性包括认证、授权、审计、网络隔离和加密。可提供跨云操作、可视化工具、搜索功能和数据湖支持,适用于现代应用开发,包括边缘数据处理。
36 1
|
6天前
|
存储 NoSQL 关系型数据库
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
【5月更文挑战第10天】本文对比了MongoDB与传统关系型数据库在数据模型、存储结构、扩展性、性能、事务支持、数据一致性和适用场景等方面的差异。MongoDB以其灵活的文档模型、优秀的扩展性和高性能在处理非结构化数据和高并发场景中脱颖而出,而关系型数据库则在事务处理和强一致性上更具优势。两者各有适用场景,选择应根据实际需求来定。随着技术发展,两者正相互融合,共同构建更丰富的数据库生态。
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
|
6天前
|
存储 NoSQL 关系型数据库
MongoDB非关系型数据库实战
【5月更文挑战第6天】MongoDB,流行的NoSQL数据库,以其灵活的数据模型和高性能备受青睐。本文介绍了MongoDB的基础,包括文档型数据库特性、安装配置、数据操作。通过电商订单管理的实战案例,展示了MongoDB在处理复杂数据结构和大规模数据时的优势,适用于电商、游戏、视频直播等场景。MongoDB的索引、全文搜索和地理空间功能进一步增强了其实用性。注意性能优化和扩展性以确保系统稳定性和可靠性。
|
6天前
|
弹性计算 NoSQL Shell
一键安装 MongoDB 数据库脚本
【4月更文挑战第29天】
20 4
|
6天前
|
NoSQL MongoDB 数据库
MongoDB数据恢复—MongoDB数据库文件被破坏的数据恢复案例
服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分区进行了格式化操作,然后将数据库文件拷回原分区,重新启动MongoDB服务,服务无法启动。