我已经通过MongoDB docs解释了如何配置仅在MongoDB Enterprise中可用的加密。
如何在 MongoDB Community Edition v3.4中实现静态数据?
答案 0 :(得分:4)
答案 1 :(得分:0)
与Alex Blex suggested类似,您还有其他选项,而不是社区版。
但是,如果您仍想使用Community Edition,
您可以使用mongoose.js与mongoDB进行交互。它有吸气剂和制定者,可以满足您的要求:
http://mongoosejs.com/docs/2.7.x/docs/getters-setters.html
在您的mongoose架构中,您可以为字段指定get
和set
函数。
var mySchema = new Schema({
name: {
type: String,
default: '',
trim: true,
required: 'Please enter group name',
unique: true,
get: decryptFunction,
set: encryptFunction
}
});
mySchema.set('toObject', {getters: true});
mySchema.set('toJSON', {getters: true});
只要您为字段分配任何值,就会执行set
。它将该值作为参数,然后您可以编写自己的加密逻辑。
只要您访问字段的值,就会执行get
。它将加密值作为参数,您可以在那里编写解密逻辑。
您必须撰写decryptFunction
和encryptFunction
。
但是,您将无法使用原始值查询这些字段。由于mongodb不知道文本是加密的。