zoukankan      html  css  js  c++  java
  • Node安装mongodb

    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 生成的模型,可以对数据库的操作

    // 参数1model名称

    // 参数2schema名称

    // 参数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=>{})

    定义模型实现添加操作

    修改、删除和查询

    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    <c:forEach>详解
    JSP基本_JSTL
    鼠标显示效果的形状设置
    linux7.3+nginx1.1+tomcat8.5 搭建负载均衡
    安装zabbix
    Centos7 systemctl使用
    Centos7 yum安装 Lnmp以及Lamp
    Centos7 LAMP环境下安装zabbix3.0
    centos 7.0 搭建LAMP环境
    mysql 配置参数详解
  • 原文地址:https://www.cnblogs.com/ht955/p/14188983.html
Copyright © 2011-2022 走看看