我的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的位置。
答案 0 :(得分:1)
我找到了答案,mongoose.Schema中缺少name
,因此无法找到该值,即使它存在于数据库中。