如果我有一个文档集合,例如:

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

我可以使用什么样的中间件或模式配置来确保默认情况下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)得到你想要的。

关于node.js - 用于find()的Mongoose默认过滤器/查询参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28720695/

10-15 08:42