Mongoose查询返回字符串的undefined

时间:2017-10-24 13:00:48

标签: javascript node.js mongodb mongoose

我的MongoDB中有以下数据,通过我的Person模型建模:

 { _id: 135, name: 'Alfie', age: 26 }
 { _id: 217, name: 'Ronny', age: 34 }
 { _id: 400, name: 'Sandy', age: 45 }
 { _id: 676, name: 'William', age: 24 }
 { _id: 987, name: 'Debra', age: 31 }
 { _id: 356, name: 'Kevin', age: 47 }

现在我运行以下查询:

const findQuery = Person.find({ _id: { $lt: 300 } }).select({ name: 1 })

findQuery.exec().then(doc => {
  for (let person of doc) {
    console.log(person)
    console.log(person._id)
    console.log(person.name)
  }
}

输出结果为:

{ _id: 135, name: 'Alfie' }
135
undefined
{ _id: 217, name: 'Ronny' }
217
undefined

我的问题是,为什么person.name中包含的字符串会返回undefined?正确返回对象本身和person._id的位置。

1 个答案:

答案 0 :(得分:1)

我找到了答案,mongoose.Schema中缺少name,因此无法找到该值,即使它存在于数据库中。