find() 的 Mongoose 默认 filter/query 参数
Mongoose default filter/query params for find()
如果我有一系列文档,例如:
{
type: 'post',
text: 'example',
status: 'private' // or 'public'
}
我可以使用哪种中间件或模式配置来确保默认情况下,Model.find() 仅 returns docs where 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)
获得您想要的东西。
如果我有一系列文档,例如:
{
type: 'post',
text: 'example',
status: 'private' // or 'public'
}
我可以使用哪种中间件或模式配置来确保默认情况下,Model.find() 仅 returns docs where 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)
获得您想要的东西。