問題は、nedb の「find」コマンドから返された複数のドキュメントにアクセスする方法です。
nodejs で nedb を使用して得た洞察を理解する。
nedb find を介して返されたドキュメントとキーと値のペアへのアクセスについて: これは機能します: docs[0].current.temp_f は機能します。
背景と詳細: 私は JavaScript、nodejs、nedb を初めて使用し、mongodb を使用したことはありませんが、nedb には同様の API があることを理解しています。
投稿の理由: このサイトをよく利用していますが、問題の解決策が見つかりませんでした。私はついに自分でそれを理解し、コミュニティに貢献できるようにここに投稿しています.
API を使用して Wunderground にアクセスしています。よく働く。次に、nedb API の「挿入」コマンドを使用して結果を nedb にプッシュしました。これについては、ここや他の場所に複数の例があります。
nedb API の find コマンドを使用して、データを取得できました。console.log() を使用して印刷できます。繰り返しますが、このための複数の例がここと他の場所にあります。
Wunderground は、(この形式で要求された場合) {response:{...some data}, current_observation:{...some data...temp_f...some more data}} という形式で JSON オブジェクトを返します。 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 情報を取得するために最終的に機能したのは次の
とおりです。
ここでは、配列要素 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