find()的Mongoose默认filter/查询参数

如果我收集了一些文档,例如:

{ type: 'post', text: 'example', status: 'private' // or 'public' } 

我可以使用什么样的中间件或模式configuration来确保默认情况下,Model.find()仅返回status != 'private'文档?

我不想每次查询集合都必须重复查询status != 'private'

谢谢您的帮助!

你可以尝试实现一个包装方法,例如findNonPrivate()到你的模型,然后你可以委托查找status不等于"private"每个文档。 像这样的东西:

 var Model = mongoose.model('Model', theSchema); Model.findNonPrivate = function (q, callback) { q.status = q.status || {"$ne": "private"}; this.find(q, callback); } 

然后,您可以使用Model.findNonPrivate({}, callback)