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

    定义模型实现添加操作

    修改、删除和查询

    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    398. Random Pick Index
    382. Linked List Random Node
    645. Set Mismatch
    174. Dungeon Game
    264. Ugly Number II
    115. Distinct Subsequences
    372. Super Pow
    LeetCode 242 有效的字母异位词
    LeetCode 78 子集
    LeetCode 404 左叶子之和
  • 原文地址:https://www.cnblogs.com/ht955/p/14188983.html
Copyright © 2011-2022 走看看