Mongodb计算指定时间范围内的匹配值

时间:2020-06-08 21:41:30

标签: mongodb aggregation-framework

我正在尝试从县房地产数据库中提取“最近的购买者名单”。

现在,我可以像这样创建一个买家名称及其拥有的属性数量的数组:

const agg = [
  {
    '$group': {
      '_id': '$name', 
      'count': {
        '$sum': 1
      }
    }
  }, {
    '$sort': {
      'count': -1
    }
  }
];

我想做的是创建一个在过去3个月内购买的业主以及他们的姓名和总房产计数的阵列(即使该房产是在最后一个购买之前购买的) 3个月)。

现在我使用聚合器时,在阶段1:$match阶段没有任何结果。我将如何查找上面指定的列表?

每个文档都有一个deeds数组,如下所示:

deeds:[{
id:"myDeedID", //string
date: 1970-01-01T00:00:00.000+00:00, // date
}]

到目前为止,这是我所拥有的,但是从第一阶段开始就没有任何内容了。

  const agg = [
      {
        '$match': {
          'deeds.date': {
            '$gte': {
              '$dateFromString': '2020-03-01T04:00:00.000+00:00'
            }
          }
        }
      }, {
        '$group': {
          '_id': '$name', 
          'count': {
            '$sum': 1
          }
        }
      }, {
        '$sort': {
          'count': -1
        }
      }
    ];

0 个答案:

没有答案