通过mongoose进行的所有查询的默认值

时间:2013-09-17 12:45:16

标签: node.js mongodb mongoose

我正在尝试编写一个mongoose模式,对于所有调用find()或者findOne()都会在其中一个字段中传递某个值。我尝试在字段声明中使用'default'属性,但这对我不起作用。

这是我的架构:

var schema = Schema({
  created_at: Date,
  type: {type: String, default: "alert"},
  timestamp: Number,
  order: Number,
  description: String,
  status: String,

});

我希望每次调用find()和findOne()都能在“type”字段中传递值“alert”。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以在模型中添加一个简单的包装器方法,该方法将负责使用type: "alert"查找每个文档。像这样:

var Model = mongoose.model('Model', theSchema);
Model.alerts = function (q, callback) {
  q.type = "alert";
  this.find(q, callback);
}

然后,您可以使用Model.alerts({}, callback)获得所需内容。