【发布时间】:2020-10-12 11:54:59
【问题描述】:
关于准备把我的笔记本电脑飞盘到这里的石膏板中。
我有一个包含几个不同对象和数组的 Mongo 文档。主要感兴趣的是categories 对象数组和bypass 字符串数组。
我正在使用model.findOne() 成功获取文档。文档的值存储在res 变量中,console.log(res) 显示正确的值而没有错误。我什至可以看到categories 和bypass 元素的内容。
当我将res.categories 分配给变量时,不会发生错误。万岁,作业的基础知识正在发挥作用。
当我将res.bypass 分配给一个变量时(紧接在上面的分配之后),变量值是undefined,即使我可以看到res.bypass 的内容包含一个设计的字符串数组。
res.bypass 的结构是bypass: [ '123', '456', '78', '90' ]。将该值分配给变量会将其设置为undefined。
我在这里遗漏了什么吗?我是否不允许获取单个文档并将其不同元素分配给不同的变量?
编辑 1:
代码片段请求:
await Api.findOne({ id: '1' }).then(async (doc) => {
console.log(doc.categories) // Categories Array of Objects
console.log(doc.bypass) // Bypass Array of Strings
const categories = doc.categories // Value is categories Array of Objects
const bypass = doc.bypass // Value is undefined
...
})
【问题讨论】:
-
我认为您应该包含您的实际代码或其中的一部分。用散文形式解释它可能会很有趣。但我认为代码是最容易掌握的(至少对于开发人员而言),嗯,以代码形式。
-
你可能想检查你是否在你的赋值语句中正确地剥落了
res.bypass -
@thammada.ts 添加了代码 sn-p。
-
这能回答你的问题吗? Can't access object property of a Mongoose response 您需要使用
.lean()并确保您尝试访问的字段列在架构中..