使用mongodb查找总费用

用户名

我有一个购物车,我想算出总费用,但是我尝试的所有方法似乎都不起作用:

篮子收集示例:

{
    "hash": "xxxxx",
    "items": [
        {
            productCode: 'xxx',
            qty: 4
        }
    ]
}

示例产品集合:

{
   [
       {
           productCode: 'xxx',
           price: 299
       }
   ]
}

我当前的代码:

const basket = await this.collection.aggregate([
    { $match: { hash } }, // Find the shopping cart with the hash
    { $lookup: { from: 'products', localField: 'items.productCode', foreignField: 'productCode', as: 'products' } },
    { $limit: 1 },
    { $project: {
            _id: false,
            qtys: '$items',
            products: '$products'
            // totalCost // Output the total cost of all the products
        }
    }
]).toArray();

我需要通过将价格乘以商品数据中的数量来得出价格...有关该怎么做的任何想法?

谢谢

汤姆·斯拉伯特

您可以通过几种不同的方法来实现此目的,我觉得最直接的方法是对$unwind购物车的item字段进行计算,然后还原结构,如下所示:

db.basket.aggregate([
  { $match: { hash } },
  {
    $limit: 1 // why do we need this? isn't the hash unique?
  },
  {
    $unwind: "$items"
  },
  {
    $lookup: {
      from: "products",
      localField: "items.productCode",
      foreignField: "productCode",
      as: "products"
    }
  },
  {
    $unwind: "$products"
  },
  {
    $group: {
      _id: "$_id",
      items: {
        $push: "$items"
      },
      products: {
        $push: "$products"
      },
      totalCost: {
        $sum: {
          "$multiply": [
            "$products.price",
            "$items.qty"
          ]
        }
      }
    }
  },
  {
    $project: {
      _id: false,
      
    }
  }
])

蒙哥运动场

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用mongodb查找总费用

来自分类Dev

Java:查找帐单的电话总费用

来自分类Dev

合并总费用

来自分类Dev

使用 SQL 按员工 ID 汇总费用

来自分类Dev

无法获得表格总费用

来自分类Dev

计算学校收取的总费用

来自分类Dev

获取每个名称的总费用之和

来自分类Dev

Excel。根据周和费用代码汇总费用

来自分类Dev

Javascript添加小计和小费以获得总费用

来自分类Dev

从Azure帐单发票CSV文件获取总费用

来自分类Dev

想要在查询月份中汇总费用

来自分类Dev

是否可以计算Access中每个日历周的总费用?

来自分类Dev

SQL子查询可检索每个酒店的总费用

来自分类Dev

使用MongoDB针脚是否还会收取MongoDB Atlas的费用?

来自分类Dev

我如何才能获得用户添加的所有商品的总费用?

来自分类Dev

在 MYSQL 中显示过去六个月每个类别的总费用

来自分类Dev

MongoDB使用_id查找

来自分类Dev

查找包含特定费用的发票

来自分类Dev

在MongoDB中使用concat查找

来自分类Dev

使用CakePHP查找查询MongoDB

来自分类Dev

使用 ObjectId 的 mongodb 聚合查找

来自分类Dev

SQL查询-使用DISTINCT的费用

来自分类Dev

如何使用Stripe分摊费用?

来自分类Dev

使用公式应用季度费用

来自分类Dev

如何在mongodb中查找文档并使用聚合查找属性?

来自分类Dev

使用MongoDB C#查找和修改

来自分类Dev

在MongoDB中使用$ in查找子文档

来自分类Dev

MongoDB使用未知密钥在集合中查找

来自分类Dev

在mongoDB中使用Monk限制查找