访问nedb结果

时间:2015-12-11 12:57:14

标签: json node.js mongodb nedb

问题是:如何访问从nedb' find'返回的多个文档。命令。

了解我在nodejs中使用nedb获得的一些见解。

关于通过nedb返回的文档查找和访问键值对: 认为这样可行: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 ... more more data}} ,可以插入到nedb数据库中。

使用nedb API'找到'命令(例如,

db.find({},function(err,docs){console.log(docs);}我能够打印出我的数据。但我的愿望只是获得一些关键:值对,而不是整个结构。我认为像 docs.current_observation.temp_f 这样的东西可以解决这个问题,但这总是“未定义”并导致错误。

我不明白,因为我在这个领域是如此新鲜, nedb正在回归" set"数据的;因为我插入了JSON对象,所以在这种情况下是一个JSON对象数组。在npmb的npmjs.com网站上,我从未见过这个提到的内容。所以我想提醒那些缺乏这种知识的像我这样的人。

这里有什么最终有助于获得关键:价值信息: 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

1 个答案:

答案 0 :(得分:2)

简单的回答是使用mongo的查询语言和find方法返回一个匹配文档数组,然后操纵对象数组以获得所需的值。当迭代数组不用于in时使用。或者使用map,filter,forEach和reduce数组方法来操作数组数据。