【发布时间】:2014-12-03 16:16:00
【问题描述】:
mongoose 是否支持类似 rails 的 default_scope?例如,我正在向我的用户模型添加一个 isArchived 布尔字段,但我不想更新我的所有查询以选择 isArchived: false 用户。有没有办法在猫鼬中做到这一点?
【问题讨论】:
mongoose 是否支持类似 rails 的 default_scope?例如,我正在向我的用户模型添加一个 isArchived 布尔字段,但我不想更新我的所有查询以选择 isArchived: false 用户。有没有办法在猫鼬中做到这一点?
【问题讨论】:
我在 mongoose 文档中看不到任何内容,但创建自己的合并查询的范围函数应该很简单:
var defaultScope = {isArchive: false};
function scope(query){
for (var s in defaultScope){
query[s] = defaultScope[s];
}
return query;
}
Thing.find(scope({age: 21}), function(err, c){
console.log(c);
});
它不处理在默认范围和查询中指定相同的属性。必须为 $ 和它们添加一些逻辑。
【讨论】: