2015-12-11 65 views
0

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

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

关于通过nedb查找和访问键值对的文档: 认为这将工作:docs.current.temp_f但它不。 这有效:docs [0] .current.temp_f确实有效。

背景和细节: 我是JavaScript新手,nodejs,nedb,并且从未使用过mongodb,但是了解nedb有一个类似的API。

我的帖子的原因是:我使用这个网站很多,但无法找到我的问题的答案。我终于明白了自己的想法,并将其张贴在这里,以便我可以回馈社区。

我正在使用他们的API访问Wunderground。很棒。然后我使用nedb API的'insert'命令将结果推送到nedb。在这里和其他地方有很多这样的例子。

使用nedb API的find命令,我能够检索我的数据。我可以使用console.log()打印出来。再次,这里和其他地方的多个例子。

Wunderground以{响应:{...一些数据},current_observation:{...一些数据... temp_f ...一些更多数据}的形式返回一个JSON对象(如果以这种格式请求) },它可以插入到nedb数据库中。

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

db.find({},功能(ERR,文档){执行console.log(文档);}我是能够打印出我的数据。但我的愿望是只获得几个关键值对,而不是整个结构。我认为像docs.current_observation.temp_f会做的伎俩,但这总是'未定义',并导致错误。

我不明白,因为我在这个领域是如此的新颖,nedb返回一组“数据”;在这种情况下,一个JSON对象数组,因为我插入JSON对象CTS。我从来没有在npmjs.com网站上的任何地方看到过提及nedb的情况。所以我想提醒像我这样缺乏这方面知识的人。

以下是最终获得密钥的原因:价值信息: console.log(“temp_f:”,docs [0] .current_observation.temp_f);
其中我正在访问数组元素0.

当然,这可能最终会像for/in循环一样。

我希望看到关于检索关键字的任何其他想法:如果您知道任何关键字,则返回结果集中的值。

//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 

回答

2

答案很简单,使用蒙戈的查询语言与find方法返回匹配文档然后操纵对象的数组来得到你需要的值的数组。用于迭代不用于in的数组。或者使用map,filter,forEach并减少用于处理数组数据的数组方法。