如何基于字符串日期在mongo db中编写查询

时间:2019-10-16 11:20:09

标签: mongodb

订单收集

[
  {
    id: 1,
    OrderStatus: "Shipped",
    "PurchaseDate" : "2018-01-29T20:59:55Z",
  },
  {
    id: 2,
    OrderStatus: "Shipped",
    "PurchaseDate" : "2018-01-30T20:59:55Z",
  },
  {
    id: 3,
    OrderStatus: "Shipped",
    "PurchaseDate" : "2018-01-30T20:59:55Z",
  }
];

订单详细信息收集

[
  {
    orderid: 1,
    "QuantityShipped" : "1",
    "Amount" : "10",
  },
  {
    orderid: 2,
    "QuantityShipped" : "2",
    "Amount" : "20",
  },
  {
    orderid: 3,
    "QuantityShipped" : "1",
    "Amount" : "30",
  },
{
    orderid: 3,
    "QuantityShipped" : "1",
    "Amount" : "30",
  }

];

结果:

{
  sales: 80,
  count: 3
}

根据购买日期2018-01-30T20:59:55Z获得此结果。 首先,我们需要从购买日期中减去7个小时,然后进行过滤。可以说 如果我减去7小时2018-01-30T20:59:55Z,则日期可能会改变,也可能不是。那么我们必须 根据日期进行过滤。

销售将基于订单明细汇总的总和进行计算。 计数将基于订单明细计数。

如何在mongo db中编写查询。

1 个答案:

答案 0 :(得分:1)

您可以使用$dateFromString将日期/时间字符串转换为日期对象,然后可以简单地通过groupby查询并获得此结果

关注此链接https://docs.mongodb.com/manual/reference/operator/aggregation/dateFromString/