Monday, 29 May 2017

Mongoose encryption middleware after aggregation doesn't call

I have a mongoose's schema with a 'mongoose-encryption' plugin, for example:

let someSchema = new Schema({name, age});

someSchema.plugin(mongoose-encryption, {
        encryptionKey: 'eKey',
        signingKey: 'sKey',
        encryptedFields: ['age'],
        decryptPostSave: false
    });

After initiating the model and the repository I tried to aggregate some query:

let aggregation = []; // just return all the docs.
someModel.aggregate(aggregation, (err, persons) => {
        return persons;
});

As a result I'm still getting the age field encrypted, little reading has revealed that the 'post' method of the 'init' event isn't called after aggregation (as explained here - Mongoose Middleware Docs).

Is there a good solution? or any other workaround?

  • the data MUST be encrypt.

  • the aggregation is also required (in real life - lookup to other collection)



via barak

No comments:

Post a Comment