问题是:如何访问从 nedb 'find' 命令返回的多个文档。
了解我在 nodejs 中使用 nedb 获得的一些见解。
关于通过 nedb find 和访问键值对返回的文档:认为这会起作用:docs.current.temp_f 但它没有。这有效: docs[0].current.temp_f 确实有效。
背景和细节:我是JavaScript,nodejs,nedb的新手,从未使用过mongodb,但了解nedb有类似的API。
我发帖的原因是:我经常使用这个网站,但找不到我的问题的答案。我终于自己弄清楚了,并将其发布在这里,以便我可以回馈社区。
我正在使用他们的 API 访问 Wunderground。效果很好。然后我使用 nedb API 的“插入”命令将结果推送到 nedb。这里和其他地方有多个可用的示例。
使用 nedb API 的 find 命令,我能够检索我的数据。我可以使用 console.log() 将其打印出来。同样,这里和其他地方有多个示例。
Wunderground 返回一个 JSON 对象(如果以这种格式请求),格式为 {response:{...some data}, current_observation:{...some data...temp_f...some more data}},它可以插入 nedb 数据库。
使用 nedb API 'find' 命令(例如,
db.find({},function(err,docs) {console.log(docs);} 我能够打印出我的数据。但我的愿望是只获得一些键:值对,而不是整个结构。我认为像docs.current_observation.temp_f这样的东西可以解决问题,但这总是“未定义”并导致错误。
我不明白,因为我是这个领域的新手,所以nedb 正在返回一组数据;在这种情况下是一组 JSON 对象,因为我插入的是 JSON 对象。我从未在 nedb 的 npmjs.com 网站上的任何地方看到过这个。所以我想提醒像我这样缺乏这方面知识的人。
以下是最终获得 key:value 信息的方法:
console.log("temp_f: ", docs[0].current_observation.temp_f);
我在哪里访问数组元素 0。
当然,这可能会以类似 for/in 循环的形式结束。
如果您知道的话,我很想看到有关从返回的结果集中检索 key:values 的任何其他想法。
//Thought this would work, but it doesn't
docs.current_observation.temp_f
//but this does, where x is a value to record
docs[x].current_observation.temp_f