我有一个猫鼬模型:(有一个默认的字段)
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相关吗?我们无法匹配默认值?
答案 0 :(得分:8)
根据Mongoose docs,在构造文档框架时应用默认值。
执行find
查询时,如果尚未构建文档,则会将其传递给Mongo。 Mongo不了解默认值,因此没有isClever
明确true
的文档,导致空输出。
为了让你的例子有效,它应该是:
MySchema.find({ 'name' : 'john', 'isClever': {$ne: true}})