NodeJs Express框架操作MongoDB数据库执行方法讲解

目录
  • 1、Mongoose模块
  • 2、Mongoose模块的使用
  • 3、关于模型名称和数据库中集合名称的对应关系
  • 4、mongoose的基本操作

1、Mongoose模块

(1)是一个对象模型工具,是对Node.js环境下操作MongoDB数据库进行了封装,可以将MongoDB数据库中的数据转换成JavaScript对象供用户使用。

(2)名词:

  • Schema:它是一种以文件形式存储的数据库模型骨架,不具备对数据库操作的能力,仅仅只是数据库在程序片段中的一种表现,可以理解为表结构。
  • Model:由Schema发布生成的模型,具有抽象属性和行为的数据库操作
  • Entity:由Model创建的实体,它的操作也会影响数据库

(3)命名规范:驼峰命名 例:

PersonSchema:Person对应的Schema ,Person的文本属性(表结构)

PersonModel:Person对应的Model

PersonEntity:Person对应的Entity

Schema生成Model,由Model生成Entity,Model和Entity都可以操作数据库,Model的可操作性更强。

2、Mongoose模块的使用

(1)安装:npm install mongoose

(2)创建数据库连接文件

// 导入mongoose模块
const Mongoose = require('mongoose');
// 定义MongoDB数据库的连接字符串:协议://主机地址:端口号/数据库名
const mdb_url = 'mongodb://localhost:27017/my_test';
/*
    建立和MongoDB数据库的连接
    useNewUrlParser:是否使用新的url地址转换方式
    useUnifiedTopology:是否使用新的用户安全策略
*/
Mongoose.connect(mdb_url,{useNewUrlParser:true,useUnifiedTopology:true});
// 对连接过程进行处理
// 建立连接  ——连接成功触发connected事件
Mongoose.connection.on('connected',()=>{
    console.log('数据库连接成功~'+mdb_url);
})
// 连接异常 ——回调函数的参数中保存了异常的信息
Mongoose.connection.on('error',(e)=>{
    console.log(e);
})
//断开连接 ——断开连接触发
Mongoose.connection.on('disconnected',()=>{
    console.log('断开数据库的连接~');
})
// 导出mongoose
module.exports = Mongoose;

(3)创建Schema,再由Schema创建Model

  • Schema:定义的是与集合对应的骨架。Schema中的属性对应的是MongoDB中集合的key。
  • 是Schema的实例,用于操作MongoDB中的集合中的文档。

3、关于模型名称和数据库中集合名称的对应关系

(1)数据库中没有集合

mongoose.model('Admin',AdminSchema) ——>在模型名后加s就是集合名(不区分大小写) ——admins

mongoose.model('Admin',AdminSchema,'admin')——>第三个参数就是用于定义的集合名称

(2)数据库中有集合

mongoose.model('Admin',AdminSchema,'数据库中已有的集合名')

4、mongoose的基本操作

(1)插入文档:save方法

  • 先使用Model创建Entity
  • 然后使用Entity调用save方法
const AdminModel = require('../model/adminModel');
// 通过model创建一个对象
const admin = new AdminModel({
    _id:'1005',
    userName:'唐僧',
    password:'123456',
    address:'东土大唐'
})
/*
*   通过对象调用save方法向数据库中插入数据err存放的是保存失败后的信息 res是保存的对象
*/
admin.save((err,res)=>{
    if(err){
        console.log(err);
    }else{
        console.log(res);
    }
})

(2)删除文档:findByIdAndDelete :直接通过Model调用,作用是根据文档的_id属性删除

(3)删除文档:deleteOne:直接通过Model调用,根据给定的条件删除文档

(4)更新文档:findOneAndUpdate,直接通过Model调用

findOneAndUpdate(条件,更新语句,{},回调函数)

AdminModel.findOneAndUpdate(
    {'_id':'1004'},  //表示查询的条件
    {$set:{'password':'789567'}}, //更新语句
    null,  //表示查询操作,通常为null
    (err,data)=>{ //更新回调函数,err表示数据库的错误信息,data中存放的findOne查询到的文档
        if(err){
          console.log(err);  //err表示数据库错误:查询、更新时数据库出现异常
        }else if(!data){ //data为null时表示没有找到对应的文档
            console.log('更新失败~');
        }else if(data){  //data不为null时表示找到对应的文档
            console.log('更新成功~')
        }
    })

(5)更新文档:updateOne(条件,更新语句,回调函数)

AdminModel.updateOne({'password':'123456'},{$set:{'password':'567890'}},(err,data)=>{
    if(err){
        console.log(err);
    }
    console.log(data.modifiedCount);
})

(6)查询所有:find

AdminModel.find((err,data)=>{
    if(err){
        console.log(err);
    }
    console.log(data);
})

(7)按_id查询:findById

AdminModel.findById({
    '_id':'1004'
},(err,data)=>{
    if(err){
        console.log(err);
    }
    console.log(data);
})

(8)多条件查询:findOne 返回满足条件的第一条记录

AdminModel.findOne({
    address:'三国',
    password:'123456'
},(err,data)=>{
    if(err){
        console.log(err);
    }
    console.log(data)
})

(9)查询集合中的文档数量 :count

AdminModel.count((err,data)=>{
    if(err){
        console.log(err);
    }
    console.log('记录数:'+data);
})

到此这篇关于NodeJs Express框架操作MongoDB数据库执行方法讲解的文章就介绍到这了,更多相关NodeJs操作MongoDB数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能

    同志们,经过不懈的努力,查了各种文档,终于鼓捣出了一个稍微像样一点的node项目,当然如果直接拿去项目里用,这个demo还太简单,毕竟一个完整的登录注册还有很多实际的内容,本案例mySQL的用户列表里,为便于理解,只设置了username 和password两个字段,正常的登录注册,肯定会有更多的字段的.但是对于初学node的人来说,比如笔者,还是学习到了不少内容,甚至,紧张的我不知如下下笔,肯定这个是参考了很多网上其他少年博客,以后这个登录注册demo会依据项目的需要而有所改进, 效果如下 效

  • nodejs中的express-jwt的使用解读

    目录 nodejs中express-jwt的使用 nodejs express-jwt is not a function问题 总结 nodejs中express-jwt的使用 express-jwt更新到7.x版本后更改了用法,无法像7.x版本之前那样使用express—jwt,导入.在中间件配置个密钥就行了,更新之后,需要在express-jwt中将其解构出来再使用. 也无法在排除的路径中使用req.user去获取用户token解密出来的数据.而是使用req.auth. 具体代码如下: co

  • node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)

    此内容需有node.js+express+mysql入门基础,若基础薄弱,可参考博主的其他几篇node.js博文: 1.下载Mysql数据库,安装并配置.创建用户表供登录使用: 2.node.js平台下Express的session与cookie模块包的配置:http://www.jb51.net/article/112190.htm 3.node.js平台下的mysql数据库配置及连接:http://www.jb51.net/article/110079.htm 完成前两步后需下载配置Ejs模

  • express框架通过ejs模板渲染输出页面实例分析

    1.前言   上一节的get请求中,处理函数通过res.send返回了一段html代码,这让我们很兴奋.我们终于可以给用户返回html页面了.  当时例子是这么写的,只要在send中传入一些html格式的字符串即可. // get router router.get('/', function(req, res, next) { res.send('<p>这是get请求/system返回的资源</p>') });   那我问个问题,如果我想返回给用户的是一张学生的成绩信息怎么办?其

  • NodeJS Express使用ORM模型访问关系型数据库流程详解

    目录 一.ORM模型 二.在Node中ORM的实现 一.ORM模型 设计思想,主要目的是简化计算机程序访问数据库 1.ORM:对象关系模型(对象关系映射) Object Releastion Model,将程序中的对象和数据库中关系(表格)进行映射.可以使开发者在程序中方便的对数据库进行操作(用户在程序操作对对象实际就是操作数据库的表格) 2.ORM的映射关系: (1)程序中的模型(即为类) <——>表名 (2)模型的类型(类中定义的属性)<——> 表的列 (3)由模型创建的对象(

  • Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的实现方法 原创

    在 Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的步骤如下: 1. 安装 silly-datetime 库 可以通过 npm 命令安装 silly-datetime 库,命令为: npm install silly-datetime --save 2. 在 app.js 中配置模板引擎和使用库方法 在 app.js 文件中,需要配置使用 EJS 模板引擎,并使用 res.locals 将库方法传递给模板.下面是一个例子: const expr

  • NodeJs Express中间件使用流程解析

    目录 1.调用流程 2.格式 3.next函数的作用 4.定义中间件函数 5.全局生效的中间件 6.中间件的作用 7.定义多个全局中间件 8.局部生效的中间件 9.定义多个局部中间件 10.了解中间件的注意事项 11.中间件的分类 1.应用级别的中间件 2.路由级别的中间件 3.错误级别的中间件 4.Express内置的中间件 5.第三方中间件 6.自定义中间件 中间件(Middleware),特指业务流程的中间处理环节 1.调用流程 当一个请求到达Express的服务器之后,可以连续调用多个中

  • 零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门

    本文改自非鱼的<[翻译]前端开发人员入门指南,从零开始搭建Node.js, Express, Jade, Mongodb服务器>,之所以把Jade换成Ejs,是因为我觉得ejs更符合WEB编程人员的习惯,更确切说应该是更符合PHP.ASP程序员的使用习惯.好了,废话不多说,直接开始教程. 第1部分 – 15分钟安装 如果你真的是从零开始学,那就花点时间先把环境搭建起来吧.这不难,我用的是Win8,所以这看上去跟那些用Mac和Ubuntu或者其它*nix系统的教程有点区别,不过大致是一样的. 第

  • tp5(thinkPHP5)操作mongoDB数据库的方法

    本文实例讲述了tp5(thinkPHP5)操作mongoDB数据库的方法.分享给大家供大家参考,具体如下: 1.通过composer安装 composer require mongodb/mongodb 2.使用 <?php /** * @author: jim * @date: 2017/11/17 */ namespace app\index\controller; use think\Controller; use MongoDB\Driver\Manager; use MongoDB\C

  • 使用Node操作MongoDB数据库的方法

    1.使用 MongoDB模块 进行操作 首先在工作目录安装 mongodb 模块, cnpm i mongodb//引入模块 const MongoClient = require('mongodb').MongoClient; //写连接字符串,我的数据库地址如下,所以当你在写的时候修改地址之后的内容就好 const DB_CONN_STR= 'mongodb://127.0.0.1/demo'; //记得打开mongod服务 ,不然等着一堆err吧 //写一个插入数据的函数 const in

  • node基于express框架操作Mysql数据库的步骤

    目录 一.在express项目中操作数据库的步骤 1.安装mysql模块 2.配置mysql模块 3.测试mysql模块能否正常工作 4.查询数据库数据 5.向数据库插入数据 6.更新数据库数据 7.更新数据库数据 8.删除数据库信息的标记删除 一.在express项目中操作数据库的步骤 ①安装操作 MySQL 数据库的第三方模块(mysql) ②通过mysql模块连接到MySQL 数据库 ③通过 mysql模块执行SQL语句 1.安装mysql模块 mysql模块是托管于npm 上的第三方模块

  • Node.js中使用mongoose操作mongodb数据库的方法

    如何利用mongoose将数据写入mongodb数据库? 1.利用npm下载安装mongoose; npm install mongoose 2.建立js文件,引入mongoose var mongoose = require('mongoose'); 3.mongoose.connect连接数据库 //连服务器 mongoose.connect('mongodb://127.0.0.1:27017/test'); //数据库的名字 var connection = mongoose.conne

  • Python操作MongoDB数据库的方法示例

    本文实例讲述了Python操作MongoDB数据库的方法.分享给大家供大家参考,具体如下: >>> import pymongo >>> client=pymongo.MongoClient ('localhost',27017) >>> db=client.students >>> db.collection_names() ['students'] >>> students=db.students >>

  • Python操作Mongodb数据库的方法小结

    本文实例讲述了Python操作Mongodb数据库的方法.分享给大家供大家参考,具体如下: 一 导入 pymongo from pymongo import MongoClient 二 连接服务器 端口号 27017 连接MongoDB 连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入MongoDB的IP及端口即可,第一个参数为地址host,第二个参数为端口port,端口如果不传默认是27017. conn = MongoClient("localhost

  • python连接、操作mongodb数据库的方法实例详解

    本文实例讲述了python连接.操作mongodb数据库的方法.分享给大家供大家参考,具体如下: 数据库连接 from pymongo import MongoClient import pandas as pd #建立MongoDB数据库连接 client = MongoClient('162.23.167.36',27101)#或MongoClient("mongodb://162.23.167.36:27101/") #连接所需数据库,testDatabase为数据库名: db=

  • Python操作mongodb数据库的方法详解

    本文实例讲述了Python操作mongodb数据库的方法.分享给大家供大家参考,具体如下: 安装pymongo 下载pymongo: https://pypi.python.org/packages/82/26/f45f95841de5164c48e2e03aff7f0702e22cef2336238d212d8f93e91ea8/pymongo-3.4.0.tar.gz#md5=aa77f88e51e281c9f328cea701bb6f3e 安装pymongo: 解压后,cmd进入pymon

  • Nodejs实现的操作MongoDB数据库功能完整示例

    本文实例讲述了Nodejs实现的操作MongoDB数据库功能.分享给大家供大家参考,具体如下: mongodb_demo.js /** cnpm install mongodb */ var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://test:123456@127.0.0.1:27017/test'; // 数据库为 test var insertData = function (db,

  • python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例

    MongoDB简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. MongoDB应用场景 大而复杂的数据 移动和社会基础设施数据 内容管理和交付 用户数据 管理数据中心

随机推荐