2016-04-24 5 views
0

こんにちは私はmongodbとnodejを学んでいます。私は注文のすべてのコレクションを取得するのに成功しました。以下は出力mongodbからjavascript配列オブジェクトへのデータの解析

The orders: { __v: 0, 
    nonmeat: 'pineapple', 
    meat: 'Bacon', 
    sauce: 'AlfredoSauce', 
    crust: 'medium', 
    _id: 571c1b9aed52d5e5462b99f9 },{ __v: 0, 
    nonmeat: 'pineapple', 
    meat: 'Bacon', 
    sauce: 'AlfredoSauce', 
    crust: 'medium', 
    _id: 571c1bba07f035e646d24aa8 },{ __v: 0, 
    nonmeat: 'parmesan,olives', 
    meat: 'Salami', 
    sauce: 'MarinaraSauce', 
    crust: 'large', 
    _id: 571c1e3c28dd30ed469eb6df },{ __v: 0, 
    nonmeat: 'parmesan,olives', 
    meat: 'Salami', 
    sauce: 'MarinaraSauce', 
    crust: 'large', 
    _id: 571c1f11ba02d9f646f4c5c0 } 

ですが、私はコレクションは、オブジェクトの配列を返す原因javascript配列にこれを変換したいです。 __v_idを除外したいと思います。私はこの結果をGoogleの円グラフに表示することを意図しています。私はちょうどキーの項目:nonmeatmeatsaucecrustが欲しいです。私は、Googleの円グラフに項目の割合を表示するつもりです。

app.get('/orders', function(req, res){ 

    var allorders = []; 
    //get all orders 
    PizzaOrder.find({}, function(err, orders){ 

     if(err) throw err; 

     console.log('The orders '+orders.length); 

     //this is wrong 
     for(var i=0; i<orders.length;i++) { 
      allorders.push(JSON.parse(orders[i])); 
     } 
    }); 
    console.log('Orders retrieved '+ allorders); 

    res.json(allorders); 

}); 

のUPDATE !!!!!!!!:

は以下のMongoDBからデータをretreiving私のコードです

jsonで送信してブラウザで表示できました。これは私のコードです:

app.get('/orders', function(req, res){ 
    //get all orders 
    PizzaOrder.find({}, function(err, orders){ 

     if(err) throw err; 

     console.log('The orders '+orders.length); 
     res.send(orders); 
    }); 
}); 

しかし、私は_id:__v:それをフィルタリングします。回答を受け取るためにajax呼び出しを使用しており、Googleの円グラフに表示しようとしています。 JSON.parse

 //try this 
    for(var i=0; i<orders.length;i++) { 
     allorders.push(orders[i]); 
    } 
+0

をあなたは – Datsik

+0

をどのMongoDBのAPIを使用している私は、マングースとmongolab – user3497437

+0

未使用受け入れられたアンカーは重複していますが、 '.toObject()'を表示しているアンカーは操作できるオブジェクトに対して行う必要があるためです。しかし、プロジェクションのフィールドを除外しても同様です。 –

答えて

0

試して、あなたの質問に_idと__vを削除する方法であれば、単純に実行します。

for(var i=0; i<orders.length;i++) { 
    delete orders[i].__v; 
    delete orders[i]._id; 
    allorders.push(orders[i]); 
} 
+0

私の質問が更新されました。私はjsonを送ってブラウザで見ることができましたが、私は '_id'と' __v'を除外して、Google円グラフに表示する項目を使用しました – user3497437

0

なし

+0

私はそれを試みたように動作しませんでした – user3497437

+0

あなたが既に1つを提出したときに「新しい回答」を追加すると大きな警告が出されます。あなたは本当にそれに注意を払うべきです。 –

関連する問題