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)
。