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. 修改中文、英文参考文献在文末列表中的顺序:EndNote

      本文介绍在EndNote软件中,使得参考文献按照语种排列,中文在前.英文在后的方法.   前期我们在EndNote参考文献格式Output Styles界面介绍一文中,详细介绍了文献管理软件End ...

  2. 力扣394(java)-字符串解码(中等)

    题目: 给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次.注意 k 保证为正整数 ...

  3. 【深度学习】基于 Alluxio 数据缓存的性能优化

    作者 | 车漾(阿里云高级技术专家).顾荣(南京大学 副研究员) 导读:Alluxio 项目诞生于 UC Berkeley AMP 实验室,自开源以来经过 7 年的不断开发迭代,支撑大数据处理场景的数 ...

  4. Inclavare Containers:云原生机密计算的未来

    ​简介:本文为你详细的梳理一次 Inclavare Containers 项目的发展脉络,解读它的核心思想和创新技术. ​ 作为业界首个面向机密计算场景的开源容器运行时,Inclavare Conta ...

  5. [Caddy2] cloudflare, acme: cleaning up failed: no memory of presenting a DNS record

    使用 cloudflare 做为 DNS 之后,使用 Caddy 申请 Lets Encrypt 证书. 有时在日志里会发现一系列的提示信息: acme: use dns-01 solver acme ...

  6. 爽了!免费的SSL,还能自动续期!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 大家好,我是技术UP主小傅哥. 兄弟,当你手里有不少域名,每个域名又配置子域名,那么ssl将是 ...

  7. 解密Prompt系列28. LLM Agent之金融领域摸索:FinMem & FinAgent

    本章介绍金融领域大模型智能体,并梳理金融LLM的相关资源.金融领域的大模型智能体当前集中在个股交易决策这个相对简单的场景,不需要考虑多资产组合的复杂场景.交易决策被简化成市场上各个信息,包括技术面,消 ...

  8. 01、Windows 排查

    Windows 分析排查 分析排查是指对 Windows 系统中的文件.进程.系统信息.日志记录等进行检测,挖掘 Windows 系统中是否具有异常情况 1.开机启动项检查 一般情况下,各种木马.病毒 ...

  9. 第五章-WAF 绕过

    WAF 绕过 1.WAF分类 1.1.软件 WAF 一般被安装到 Web 服务器中直接对其进行防护,能够接触到服务器上的文件,直接检测服务器上是否有不安全的文件和操作等. 常见的软件:安全狗.云盾.云 ...

  10. Swift中的Optional类型

    Swift当中的Optional类型,表明一个变量可能有确认的值,也可能不包含任何值.不包含任何值在Swift当中,就是一个nil. Swift当中的变量或者常量,在使用之前必须得赋值,但是对于Opt ...