2016-11-20 8 views
1

MongoDBを利用して大量のデータを格納するNodeJsアプリケーションを開発しています。データは、 ".find"または ".findOne"クエリ関数を使用して取得されます。NodeJs MongoDbゲッターとセッターのない結果

const collection = db.collection('recordings'); 

collection.find({}, {fields: ['header']}).toArray() 
    .then(documents => { 
     console.log(documents); 
     resolve(documents); 
    }) 
    .catch(error => reject(error)); 

アプリケーションは、電子のJSを使用して構築されるので、私はChromeデベロッパーツールを介してデータを検査することができるよ:これらのゲッターとセッターを持つ

The console ouput は、アプリケーションがかなり遅くなります。チャートは吃音を開始し、この余分なステップがなければ

JSON.parse(JSON.stringify(documents)) 

:データもD3-チャートで視覚化されているので、私はすべての機能を削除するには、この奇妙解決策を考え出しました。

不要なゲッターとセッター関数を削除するために、すべてのドキュメントを循環させずに未加工の結果を取得するより良い方法はありますか?

ありがとうございます。

+2

mongodb' 'と過度に慣れていないが、私はちょうどあなたの問題を再現してみました。私は私のリターンでこれらの 'get'と' set'メソッドを取得せず、オブジェクトのフラットな配列だけを取得します。どのバージョンのノードmongodbクライアントを使用していますか?私は2.2.11で試しました... – Mark

答えて

2

mongoには問題はありません。また、私はこの行{fields: ['header']}と勘違いした。

あなただけのヘッダフィールドをしたい場合は、この

collection.find({}, {'header': 1, _id: 0}).toArray()のように照会する必要があります。

https://docs.mongodb.com/v3.0/tutorial/project-fields-from-query-results/

は、この情報がお役に立てば幸いです。

+0

あなたの答えをありがとう。私が使用した投影のスタイルは、単に別の構文です。私は公式の文書に従ってそれを変更しました。 奇妙な "ゲッター"と "セッター"の問題はまだありません。これは、私がMongo DBをElectronレンダラープロセスで使用している場合にのみ発生します。 –

+0

することができます。私はmongoのこの種の問題を見たことがないので。どのモジュールを使用してmongodbに接続して照会するのですか? –

+0

それだけの単純なmongodbノードモジュール: "mongodb": "^ 2.2.11" –

0

私はこの記事の勧告に従った後ソリューションを得た: https://stackoverflow.com/a/38490959/1292336

を使用すると、モンゴデータベースに直接電子レンダラープロセスを接続する場合にのみ問題が発生します。 メインプロセスを使用し、各クエリの結果をipcを使用して転送する必要があります。問題を再構築するためのミコラBorysyukとマルクへ

感謝:)

+0

あなたを助けたNp.Glat。 –

+0

これはまだ変です。私のテストは「レンダリング」プロセスで行われました。私の 'index.html'に直接'