• 学习mongodb简单安装、连接数据库、增删改查


    1、什么是数据库

    数据库是存储数据的仓库,可以讲数据进行有序的分门别类的存储,它是独立语言之外的软件,可以通过api去操作它

    常见的数据库软件有 : mysql 、 mongoDB、oracle

     2、MongoDB数据库下载安装

    下载地址:https://www.mongodb.com/download-center/community

    工具下载:https://www.mongodb.com/try/download/database-tools

    3、数据库了解

     4、mongoose第三方包

    npm install  mongoose命令下载

    5、启动MongoDB数据库

    在命令行工具运行 net start mongDB 即可启动 ,否则无法启动

     6、数据库连接

    使用moogoose提供的connect方法连接数据库。

    const mongoose = require('mongoose')
    mongoose.connect('mongodb://localhost:27017/playground')
      .then(() => console.log('数据库连接成功'))
      .catch(error => console.log(error, '数据库连接失败'))

    运行node 01.js 就报错了  说这样子不行需要加上以下参数不然会报异常

     完整代码如下

     // 引入mongoose第三方模块 用来操作数据库

    const mongoose = require('mongoose')

    // 数据库连接
    mongoose.connect('mongodb://localhost:27017/playground', {
      useNewUrlParser: true,
      useUnifiedTopology: true
    })
    // 连接成功
    .then(() => console.log('数据库连接成功'))
    // 连接失败
    .catch(error => console.log(error, '数据库连接失败'))

     7、创建集合规则

    // 创建集合规则
    const courseSchema = new mongoose.Schema({
      name: String,
      author: String,
      isPublished: Boolean
    })
    
    // 使用规则创建集合
    // 1、集合名称
    // 2、集合规则
    const Course = mongoose.model('Course', courseSchema) //courses
    // 获取异步api
    // Course.create({ name: 'Javascript', author: '黑马讲师', isPublished: false }, (err, result) => {
    //   // 错误对象
    //   console.log(err);
    //   // 当前插入文档
    //   console.log(result);
    // })
    // 通过构造函数插入数据
    Course.create({ name: '小程序', author: '黑马讲师', isPublished: true })
      .then(result => {
        console.log(result);
      }).catch(err => {
        console.log(err);
      })

    8、mongoDB数据库导入数据

    mongoimport -d 数据库名称  -c 集合名称  --file 要导入的文件

    在文件夹下新增user.json 静态数据文件


    {"name": "王五", "age": 22, "hobbies": ["听歌","画画"], "email": "27@qq.com", "password": "123456"}
    {"name": "李四", "age": 18, "hobbies": ["运动","弹琴"], "email": "26@qq.com", "password": "643521"}
    {"name": "张三", "age": 26, "hobbies": ["烘培","敲代码"], "email": "25@qq.com", "password": "345621"}
    {"name": "二货", "age": 19, "hobbies": ["听歌","吃饭"], "email": "24@qq.com", "password": "234561"}
    {"name": "王者", "age": 8, "hobbies": ["做饭","敲代码","打豆豆"], "email": "23@qq.com", "password": "324561"}
    {"name": "荣耀", "age": 32, "hobbies": ["乒乓球"], "email": "22@qq.com", "password": "235641"}
    {"name": "吃鸡", "age": 33, "hobbies": ["篮球"], "email": "21@qq.com", "password": "145623"}
    {"name": "战场", "age": 24, "hobbies": ["吃货"], "email": "11@qq.com", "password": "981234"}

    注意每条数据必须在同一行,然后执行命令导入 发现报异常了找不到后来找了方法

    【原因】

    打开MongoDB安装目录bin文件夹,发现没有mongoimport.exe这个程序

    【解决方法】

    1.到官网下载压缩包

    https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools

    2.解压后把bin文件夹里的文件全部拷贝到MongoDB安装目录bin文件夹下在运行  mongoimport -d playground -c users --file ./user.json  这个命令就可以正常导入数据了

     

     9、查询文档find()、findOne()

    // 查询用户集合中的所有文档
    User.find().then(res => console.log(res))
    // 根据指定id 获取数据
    User.find({ _id: '60093edfacc33ed1e296eb48' }).then(res => console.log(res))
    // findOne方法返回一条文档 默认返回当前集合中的第一条文档
    User.findOne({ name: '李四' }).then(res => console.log(res))
    // 匹配用户年龄大于20 小于50
    User.find({ age: { $gt: 20, $lt: 50 } }).then(res => console.log(res))
    // 匹配包含 $in
    User.find({ hobbies: { $in: ["敲代码"] } }).then(res => console.log(res))
    // 选择要查询的字段
    User.find().select('name email -_id').then(res => console.log(res))
    // 根据年龄升序排序
    User.find().sort('age').then(res => console.log(res))
    // 根据年龄降序排序
    User.find().sort('-age').then(res => console.log(res))
    // skip 跳过多少条数据  limit 限制查询数量
    User.find().skip(2).limit(3).then(res => console.log(res))

    10、 删除文档  

    // 查找一条数据并且删除
    // 返回删除的文档
    // 如何查询匹配了多个文档 那么将会删除第一个匹配的文档
    User.findOneAndDelete({ _id: "600944c3f760f093f8989016" }).then(res => console.log(res))
    // 删除全部数据
    // 返回ok:1 删除成功  deletedCount:7 当前删除了7条数据
    User.deleteMany({}).then(res => console.log(res))

    11、更新文档

    // 更新集合中的文档
    User.updateOne({ name: '李四' }, { name: '李狗蛋' }).then(res => console.log(res))
    // 更新多个集合中的文档
    User.updateMany({}, { age: 56 }).then(res => console.log(res))
  • 相关阅读:
    2017年前端开发者应该重拾基本技能学习
    手机号码月消费档次API
    实用且免费API接口2
    在线文档转换API word,excel,ppt等在线文件转pdf、png
    火车票抢票API 根据乘客的车次与座席要求快速订票出票
    利用问答机器人API开发制作聊天类App
    用聚合数据API(苏州实时公交API)快速写出小程序
    OllyDbg使用笔记
    解决git commit 大文件推送失败
    每日一语
  • 原文地址:https://www.cnblogs.com/chen-cheng/p/14305081.html
Copyright © 2020-2023  润新知