首页 > 解决方案 > 保护文档永远不会显示在查询结果中的方法

问题描述

我想要一个基于条件的中间件来保护或隐藏文档以防止任何类型的索引或查询。例如考虑这个伪代码:

Schema.pre('any query',function(next){
    if(document.status !== 'published') document.allowQuering = false;
}

或者:

Schema.pre('save',function(next){
    if(this.status !== 'published') this.allowQuering = false;
}

这应该确保那些没有已发布状态的文档不会显示在查询中或从其他文档等中填充。

标签: javascriptnode.jsmongodbmongoose

解决方案


如果您使用 mongoose 使用 select 属性,但请注意它不适用于聚合聚合,您应该始终创建一个辅助方法

密码:{类型:字符串,选择:假}


推荐阅读