mongodb

常用命令

  1. const toDel = db.users.find().sort({createdAt:-1}).skip(150).map(doc=>dock._id) 获取数据里安装时间倒序排列之后第150个之后的数据(数组)
  2. db.users.deleteMany({_id:{$in:toDel}}) 批量删除
  3. mongodump --db mydb --out /backup : 备份数据库;mongorestore --db mydb /backup/mydb : 恢复数据库

下载mongod(windows)

使用docker下载mongod最快捷。

  1. 访问docker官网下载docker官网,并安装。
  2. 命令行输入:docker --version,如果显示版本号,说明安装成功。
  3. 拉取镜像:docker pull mongo。如果卡住不动,可能是网络链接问题,可尝试更换镜像源。
    1
    2
    3
    4
    5
    6
    {
    "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.1panel.live/"
    ]
    }
    docker配置文件
  4. 查看下载结果:docker images
  5. 运行:docker run -d --name mongodb -p 27017:27017 mongo
  6. 访问 localhost:27017 出现:’It looks like you are trying to access MongoDB over HTTP on the native driver port.’。说明启动成功
  7. 如果想进入到容器中的Mongo shell中,可以运行:docker exec -it mongodb mongosh
  8. 可以用桌面程序管理mongodb,也可以使用 docker stop mongodb停止 或 docker rm mongodb 来删除镜像

mongodb命令

执行docker exec -it mongodb mongosh进入到mongodb shell中可以直接操作数据库

  1. show dbs : 查看所有数据库
  2. use mydb : 切换或创建数据库,如果数据库不存在,MongoDB会在第一次插入数据的时候自动创建它
  3. db : 查看当前数据库
  4. db dropDatabase() : 删除数据库
  5. show collections :查看该数据库下所有集合
  6. db.createCollection('users') : 创建集合;db.users.drop(),删除该集合
  7. db.users.insertOne({name:'Alice',age:25}) : 插入数据;db.users.insertMany([{name:'Alice',age:25},{name:'Bob',age:26}]) :插入批量数据
  8. db.users.find() : 查看所有数据; db.users.findOne() : 查看一条数据,db.users.countDocuments() :获取数据个数
  9. db.users.find({query},{projection}) : 进行条件查询$投影查询
  10. db.users.updateOne({ name: "Alice" }, { $set: { age: 26 } }) : 更新数据

mongoose使用

  1. 下载mongoose: npm install mongoose
  2. 链接mongoose:
    1
    2
    3
    4
    5
    6
    7
    8
    mongoose
    .connect('mongodb://127.0.0.1:27017/fe')
    .then(() => {
    console.log('数据库连接成功');
    })
    .catch((e) => {
    console.log('数据库连接失败');
    });
  3. 建立model层
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    const mongoose = require('mongoose');
    const { Schema } = mongoose;
    const TaskSchema = new Schema(
    {
    taskId: {
    type: String,
    required: true,
    },
    status: {
    type: String,
    enum: ['success', 'failure', 'pending', 'executing'],
    required: true,
    },
    brand: {
    type: String,
    required: true,
    },
    appName: {
    type: String,
    required: true,
    }
    {
    timestamps: true, // 自动添加 createdAt 和 updatedAt 字段
    }
    }
    );
    // 创建模型
    const Task = mongoose.model('buildTask', TaskSchema);
    module.exports = Task;
  4. 建立controller层
    1
    2
    3
    4
    const buildTask = require('../model/build-task');
    //buildTask.creat(task);
    //buildTask.find();
    //buildTask.findOne({_id:id})