gpt4 book ai didi

node.js - 无法使用 mongoose 和 nodejs 访问对象值

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:30 25 4
gpt4 key购买 nike

在访问对象的值时,我遇到了奇怪的问题。

我正在使用 mongoose 查询 MongoDB(具体为 findOne 操作)。

返回值保存到product变量中。

这段代码

console.log(product);
console.log(product.auth);

输出这个

{ _id: '56bde5cab581548421b5c1bf',
product_identifier: 'oo',
auth: { public: 'publickey', private: 'private_key' },
created_at: 1455285691,
deleted_at: null,
flags: [],
final_states: [ 3, 4 ] }
undefined

所以我的问题是我无法访问对象的内部值。为了确保这不是因为 NodeJS 的异步行为,我颠倒了两个 console.log 语句的顺序,但它仍然是 undefined 快速谷歌搜索后,我发现 console.log 不可靠。所以我做了 console.log(JSON.stringify(product)); 输出

{"_id":"56bde5cab581548421b5c1bf","product_identifier":"oo","auth":{"public":"publickey","private":"private_key"},"created_at":1455285691,"deleted_at":null,"flags":[],"final_states":[3,4]}

(如预期)所以值(value)肯定是存在的。所以我尝试了这个

console.log(JSON.parse(JSON.stringify(product)).auth);

然后,成功了!(输出 - { public: 'publickey', private: 'private_key' })

我绝对确定这不是数组中的对象问题,这是我能找到的互联网上的大多数问题。我在这里缺少什么?

PS - 说实话,我真的很指望 mongoose bug

编辑-console.log(typeof Product) 输出 object,如果有帮助的话

编辑2 -console.log(product.final_states) 工作正常。

最佳答案

MongoDB中存储的文档类型是BSON,我们可以尝试通过toObjectproduct转换为Object或toJSON

console.log(product.toJSON().auth);

关于node.js - 无法使用 mongoose 和 nodejs 访问对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com