Node.js 将数据从mongodb解析为javascript数组对象

Node.js 将数据从mongodb解析为javascript数组对象,node.js,mongodb,Node.js,Mongodb,你好,我正在学习mongodb和nodejs。我成功地检索了订单的所有集合。下面是输出 The orders: { __v: 0, nonmeat: 'pineapple', meat: 'Bacon', sauce: 'AlfredoSauce', crust: 'medium', _id: 571c1b9aed52d5e5462b99f9 },{ __v: 0, nonmeat: 'pineapple', meat: 'Bacon', sauce: 'Alfr

你好,我正在学习mongodb和nodejs。我成功地检索了订单的所有集合。下面是输出

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数组,因为集合返回一个对象数组。我想过滤掉
\u v
\u id
。我打算用这个结果显示在谷歌饼图上。我只想要关键的东西:
非肉
。我打算在谷歌饼图上显示一定百分比的项目

下面是我从mongodb检索数据的代码:

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);

});
但是我想过滤掉
\u id:
\u v:
。我正在使用ajax调用来接收响应,并打算显示在google饼图上。

尝试不使用JSON.parse

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

对于(var i=0;i,如果您的问题是如何删除u id和u v,只需执行以下操作:

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

for(var i=0;ii更新了我的问题。因为我能够在浏览器上发送json和视图,但我想过滤掉
\u id
\u v
,并使用这些项目在谷歌饼图中显示您使用的是哪个Mongodb API我使用的mongoose和Mongonab在副本中不是公认的答案,而是显示
.toObject()的答案
,因为您需要对可以操作的对象执行此操作。但排除投影中的字段也可以。@BlakesSeven请您显示一个example@user3497437请提供预期的输出。这在我尝试时不起作用。您知道在添加“新答案”时会发出一个很大的警告当你已经提交了一个,你真的应该注意这一点。
 for(var i=0; i<orders.length;i++) {
    delete orders[i].__v;
    delete orders[i]._id;
    allorders.push(orders[i]);
 }