Mongoose查找默认值

时间:2015-09-08 20:06:30

标签: node.js mongodb mongoose

我有一个猫鼬模型:(有一个默认的字段)

MySchema.find({ 'name' : 'john', 'isClever': false})
.exec( function(err, person)
{
     // person is always null
});

我可以通过保存名称来保存这种类型的模型,在mongoDB中,只能在文档中看到名称(而不是isClever字段)。这很好,因为默认发生在猫鼬级别。 (?)

我遇到的问题是,在尝试仅检索名为john的人时,isClever = false:

<style type="text/css" media="print">
.grid .hidden tr {
  display:none;
}
</style>

它总是返回null。这与默认值如何与mongoose相关吗?我们无法匹配默认值?

1 个答案:

答案 0 :(得分:8)

根据Mongoose docs,在构造文档框架时应用默认值。

执行find查询时,如果尚未构建文档,则会将其传递给Mongo。 Mongo不了解默认值,因此没有isClever明确true的文档,导致空输出。

为了让你的例子有效,它应该是:

MySchema.find({ 'name' : 'john', 'isClever': {$ne: true}})