node更新mongo脚本

61 阅读1分钟
const mongoose = require('mongoose');

const crypto = require('crypto');

  


// MongoDB连接字符串
const dbUrl = 'mongodb://root@dds-uf6c44ba3ed32ee41.mongodb.rds.aliyuncs.com:3717/?authSource=admin';

  


// AES加密密钥

const secretKey = '799FB089648ED9842B11655985F4863D';

  


// 用户Schema

// const userSchema = new mongoose.Schema({}, { strict: false });

const userSchema = new mongoose.Schema({

  mobile_phone: String,

  real_name: String,

  id_card: String

});

  


// 用户模型

const User = mongoose.model('users', userSchema);

  


// 连接MongoDB

mongoose.connect(dbUrl, {useNewUrlParser: true});

  


// 查询所有用户

// const users = User.find({_id: new mongoose.Types.ObjectId("63bf0f201745c9004f3389eb") })

// const users = User.count({ mobile_phone: "15818446165" })

User.find({id_card: {$gt: ""}}).then(result => {

    result.forEach(user => {

        console.log("user: ", user)

        // 对id_card字段进行AES加密

        const cipher = crypto.createCipher('aes-128-cbc', secretKey);

        let encrypted = cipher.update(user.id_card, 'utf8', 'hex');

        encrypted += cipher.final('hex');

  


        // 对id_card字段进行AES加密

        const cipher0 = crypto.createCipher('aes-128-cbc', secretKey);

        let encrypted0 = cipher0.update(user.real_name, 'utf8', 'hex');

        encrypted0 += cipher0.final('hex');

  


        // 更新用户记录

        user.id_card = encrypted;

        user.real_name = encrypted0;

        user.save();

  


    });

})