2016-04-30 60 views
4

这是我的购物车集合,它有一个价格键。在我的node.js代码中,我想查看两个文档的价格总和。我试着用骨料,但没有工作Mongodb node.js集合中所有文档的键值总和

购物车收藏

[ 
    { 
    "_id": "57244d0a05dcf1d7151ede7f", 
    "art_id": "57244c9505dcf1d7151ede7c", 
    "artist_id": "5721a528c9d28cd51f014038", 
    "user_id": "5721a528c9d28cd51f014038", 
    "price": "90" 
    }, 
    { 
    "_id": "57244d1f05dcf1d7151ede80", 
    "art_id": "57244c6105dcf1d7151ede7b", 
    "artist_id": "5721a528c9d28cd51f014038", 
    "user_id": "5721a528c9d28cd51f014038", 
    "price": "150" 
    } 
] 

Node.js的代码

function test(req, res, next) { 
    db.users.findOne({ 
     _id: mongoskin.helper.toObjectID(req.session.user._id) 
    }, function(err, user) { 
     if (!user) { 
      return res.status(400).send({ 
       status: '404 user not found' 
      }); 
     } 
     db.cart.find({ 
      user_id: req.session.user._id 
     }).toArray(function(err, result) { 
      if (err) return next(err); 
      res.send(result) 
     }); 
    }); 
} 

回答

2

添加所有的价格可以用,如:

db.cart.aggregate(
     [ 
      { 
       $group : { 
        _id : null, 
        totalPrice: { $sum: price } 
       } 
      } 
     ] 
    ).exec(function(error, result) { 
     if (err) return next(err); 
     res.send(result) 
    }); 
相关问题