Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

183
Vistas
How to get decrypted values in the aggregation result by the using of getter and setter in node.js
var mongoose = require("mongoose");
const Schema = mongoose.Schema;
let CryptoJS = require("crypto-js");

function encrypt(text) {
  try {
    let ciphertext = CryptoJS.AES.encrypt(
      text,
      process.env.MONGOOSE_PII_KEY
    ).toString();
    console.log("encryptencrypt", encrypt);
    return ciphertext;
  } catch (err) {
    console.log("error", err);
  }
}


function decrypt(text) {
  try {
    let bytes = CryptoJS.AES.decrypt(text, process.env.MONGOOSE_PII_KEY);
    var originalText = bytes.toString(CryptoJS.enc.Utf8);
    return originalText;
  } catch (err) {
    console.log("error", err);
  }
}

var callSchema = new mongoose.Schema(
  {
    from: { type: String, default: null, set: encrypt, get: decrypt },
    to: { type: String, default: null, set: encrypt, get: decrypt },
  },
  {
    versionKey: false,
    toObject: { getters: true, setters: true },
    toJSON: { getters: true, setters: true },
    runSettersOnQuery: true,
  }
);

module.exports = mongoose.model("Call", callSchema);

I am using encryption techniques (getters and setter). In normal mongo query (like find({from : "+91232323233"})) working fine but when i try to get "from" value from phone number then i'm getting encrypted value.

Is that any solution to get decrypted value by the using of mongo aggregation.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda