zoukankan      html  css  js  c++  java
  • 使用mongoose

    1、安装

    2、后台文件中创建文件夹db

     3、连接数据库,并检测数据库是否连接成功

    const md5 = require('blueimp-md5') // 1. 连接数据库 // 1.1. 引入 mongoose 
    const mongoose = require('mongoose') // 1.2. 连接指定数据库(URL 只有数据库是变化的) 
    
    mongoose.connect('mongodb://localhost:27017/gzhipin_test2') // 1.3. 获取连接对象 
    
    const conn = mongoose.connection // 1.4. 绑定连接完成的监听(用来提示连接成功) 
    
    conn.on('connected', function () { console.log('数据库连接成功') })

     4、接下来干什么

     6、概念:文档与集合

    文档相当于时一个人的信息,一条记录

    所以是单数

    集合相当于时一堆人的信息,一张表

    所以是复数

    7、定义Schema文档的结构

     8、定义模型model,scheme只是结构,有model才能添加数据

    // 2.2. 定义Model(与集合对应, 可以操作集合)
    const UserModel = mongoose.model('user', userSchema) // 集合的名称为: users
    
    /*3. 通过Model或其实例对集合数据进行CRUD操作*/
    // 3.1. 通过Model实例的save()添加数据
    function testSave() {
      // 创建UserModel的实例
      const userModel = new UserModel({ username: 'Bob', password: md5('234'), type: 'laoban' })
      // 调用save()保存
      userModel.save(function (error, user) {
        console.log('save()', error, user)
      })
    }
    testSave()

    9、使用md5加密密码

    const md5 = require('blueimp-md5') // md5加密的函数

     10、回调函数function (error, user) 的参数,第一个是错误信息,第二个信息文档doc

    11、增删改查

    // 3.1. 通过 Model 实例的 save()添加数据
    function testSave() {
    // user 数据对象
    const user = {
    username: 'xfzhang',
    password: md5('1234'),
    type: 'dashen',
    }
    const userModel = new UserModel(user)
    // 保存到数据库
    userModel.save(function (err, user) {
    console.log('save', err, user)
    })
    }
    // testSave()
    // 3.2. 通过 Model 的 find()/findOne()查询多个或一个数据
    function testFind() {
    // 查找多个
    UserModel.find(function (err, users) { // 如果有匹配返回的是一个[user, user..], 如果
    没有一个匹配的返回[]
    console.log('find() ', err, users)
    })
    // 查找一个
    UserModel.findOne({_id: '5ae1d0ab28bd750668b3402c'}, function (err, user) { // 如果
    有匹配返回的是一个 user, 如果没有一个匹配的返回 null
    console.log('findOne() ', err, user)
    })
    }
    // testFind()
    // 3.3. 通过 Model 的 findByIdAndUpdate()更新某个数据
    function testUpdate() {
    UserModel.findByIdAndUpdate({_id: '5ae1241cf2dd541a8c59a981'}, {username: 'yyy'},
    function (err, user) {
    console.log('findByIdAndUpdate()', err, user)
    // testUpdate()
    // 3.4. 通过 Model 的 remove()删除匹配的数据
    function testDelete() {
    UserModel.remove({_id: '5ae1241cf2dd541a8c59a981'}, function (err, result) {
    console.log('remove()', err, result)
    })
    }
    // testDelete()

     12、向外暴露model

  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/carry-2017/p/11755578.html
Copyright © 2011-2022 走看看