Node操作mongodb

Mongoose介绍

网址:http://www.mongoosejs.net/docs/index.html

mongoose是Node环境下异步操作mongodb数据库的扩展,仅限于Node环境下使用。

使用mongoose操作mongodb数据步骤:

  • 使用npm安装mongoose
  • 导入模块,连接mongodb数据库
  • 定义Schema
  • 定义model
  • 使用model进行数据增删改查操作

连接数据库

使用npm安装mongoose模块,并在使用模块中导入

# 安装mongoose

cnpm i -S mongoose

# 导入模块

const mongoose = require('mongoose')

# 连接数据库 返回promise对象

mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true, useUnifiedTopology: true })

connect方法参2在新版本需添加,否则会有警告提示

useNewUrlParser:当前URL字符串分析器已弃用,将在将来的版本中删除。要使用新的解析器,请将选项{usenewurlparser:true}传递给mongoclient.connect。

useUnifiedTopology:当前服务器发现和监视引擎已弃用,将在将来的版本中删除。要使用新的服务器发现和监视引擎,请将选项{useUnifiedTopology:true}传递给mongoclient构造函数

安装mongoose扩展

在主程序中连接数据库

定义Schema

Schema是mongoose中会用到的一种数据模式,可以理解为数据表结构的定义;每个schema会映射到mongodb中的一个集合,它不具备操作数据库的能力。Schema中定义数据校验,默认值,字段名,字段类型等特性。

// 创建用户集合规则

const UserSchema = new mongoose.Schema({

// 字段名/域名称

name: {

// 指字域类型

type: String,

// 必填字段

required: true,

// 字段最小长度  minlength 用于字符串类型

minlength: 2

},

age: {

type: Number,

// 默认值

default:10,

// 字段最小值 min用于数字类型

min: 1

},

pwd: String,

email: String,

// 定义此字段为 字符串数组类型

hobbies: [String]

})

定义model

model 是由schema 生成的模型,可以对数据库的操作

// 参数1:model名称

// 参数2:schema名称

// 参数3:操作的数据集合   如果参数3没有填写则以 参1的复数形式为操作数据集合名称

const UserModel = mongoose.model('User', UserSchema, 'users')

## 模型curd相关方法

Model.insertMany({key:value})

Model.deleteMany({条件},err=>{})

Model.deleteOne({条件},err=>{})

Model.countDocuments({条件})

Model.find({条件},{可选字段返回:0/1},{skip:0,limit:10})

Model.findOne({条件},{可选字段返回:0/1})

Model.updateMany({条件},{$set:{key:value}},res=>{})

Model.updateOne({条件},{$set:{key:value}},res=>{})

定义模型实现添加操作

修改、删除和查询

Node安装mongodb的更多相关文章

  1. CentOS 7部署Node.js+MongoDB:在VPS上从安装到Hello world

    写好代码,花钱买了VPS,看着Charges一直上涨却无从下手?记一位新手司机从购买VPS到成功访问的过程 0.购买VPS 首先,选择VPS提供商,部署一个新的服务器(Deploy New Serve ...

  2. 在亚马逊amazon的AWS上安装Node和MongoDB服务器

    在亚马逊amazon的AWS上安装Node和MongoDB服务器 在建立AWS上账号.创建EC2 ,用putty链接上之后,就可以用下面的方法开始安装. !!! 如果不是是自己建立的EC2, 而是由B ...

  3. windows下安装mongodb以及node.js连接mongodb

    一.MongoDB 下载 下载地址  https://www.mongodb.com/download-center#community  选择windows版下载,然后安装. 二.安装完毕后创建数据 ...

  4. 树莓派.安装系统+Node.js+MongoDB系列环境

    1.先去树莓派官网下载最新的ROM https://www.raspberrypi.org/downloads/raspbian/ 这里选的是: RASPBIAN JESSIE WITH DESKTO ...

  5. Node+Deployd+MongoDB安装问题

    首先:祝大家新年快乐!然后:最近在看一本angular教程,教程里面需要装一些软件(node,deployd,mongodb),当三个装完后在doc命令行下运行项目时出现问题了 mongodb已经按照 ...

  6. centos7下安装Node.js MongoDB Nginx

     一.Node.js 方法1(笔者采用).如果对Node.js环境有比较高的要求,建议选择源码安装的方式进行安装,通过wget命令下载Node.js官网上的tar.gz文件包到centos服务器上,进 ...

  7. Node.JS + MongoDB技术浅谈

    看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座          云计算 +大数据 ...

  8. Node+Express+MongoDB + Socket.io搭建实时聊天应用

    Node+Express+MongoDB + Socket.io搭建实时聊天应用 前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战 ...

  9. node.js + mongodb

    node.js + mongodb 这次内容是结合bootstrap把登陆注册做好,还有就是express的中间件等问题. 看这篇博客之前建议先看我上篇写的那篇博客http://www.cnblogs ...

  10. 用Node.JS+MongoDB搭建个人博客(安装环境)(一)

    Node.JS是什么? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Nod ...

随机推荐

  1. PolarDB-X 全局Binlog解读之性能篇(上)

    简介: 本篇来介绍一下PolarDB-X全局binlog在性能方面的一些设计和思考,先通过几个实际的测试案例来展示全局binlog的性能情况,然后结合这些案例来深入讲解全局binlog关于优化的故事. ...

  2. 阿里云消息队列 Kafka-消息检索实践

    简介: 本文章主要介绍消息队列使用过程中所遇到的消息丢失.重复消费等痛点问题的排查办法,以及消息队列 Kafka「检索组件」的场景实践,并对其关键技术进行解读.旨在帮助大家对消息队列 Kafka「检索 ...

  3. 阿里云飞天论文获国际架构顶会 ATC 2021最佳论文:全球仅三篇

    简介: 近日,计算机系统结构国际顶级学术会议 USENIX ATC在线上举行.ATC 始办于1992年,是由USENIX组织的计算机系统领域的顶级会议,至今已成功举办31届,计算机系统领域中Oak语言 ...

  4. k8s管理应用

  5. 【AI新趋势期刊#2】AI发明计算机算法,如何给大模型排行,照片秒变二维码,视频一键动漫风

    前言 每天都要浏览大量AI相关新闻,是不是感到信息量爆炸,有效信息少? 这么多新产品和新工具,到底哪些是真正是有价值的,哪些只是浮躁的一时热点? 想参与AI产品和工具的开发,从哪里能够获得大量的灵感和 ...

  6. 堆优化模拟退火(List-Based Simulated Annealing|LBSA)

    申明 本文部分内容来自List-Based Simulated Annealing Algorithm for Traveling Salesman Problem[1] 如有侵权,请联系删除 引入 ...

  7. 面试官:这就是你理解的Java多线程基础?

    引言 现代的操作系统(Windows,Linux,Mac OS)等都可以同时打开多个软件(任务),这些软件在我们的感知上是同时运行的,例如我们可以一边浏览网页,一边听音乐.而CPU执行代码同一时间只能 ...

  8. 分享一张2020年用jaegertracing画的tomcat8.5启动流程图

    今天整理电脑的时候意外发现一张tomcat8.5的启动流程图,是笔者2020年借助jaegertracing绘制的,想想还比较有意思,在这里分享一下,当初闲来无事折腾了小半天,具体过程已经是记不起来了 ...

  9. MYSQL CONVERT、JSON_EXTRACT函数的使用总结

    一.CONVERT.CONCAT.COUNT函数联合查询 CONVERT()函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型. MySQL还允许它将指定的值从一个字符集转换为另一个字符集. ...

  10. 一个list分成 list长度/step_length 向上取整个小list集合

    一.具体实现方法 /** * 将一个list按照新的步长分成list长度/step_length 向上取整个小list * @param list * @param step_length * @re ...