如何在过去一小时内从Mongo获取所有ID且无记录

时间:2019-04-06 20:00:13

标签: mongodb aggregation-framework

考虑以下文件:

[{
    "imei": "352413080100000",
    "datestamp": "2019-03-25T19:17:11.471Z"
}]

如何获得过去一个小时没有记录的所有imei的唯一列表?

1 个答案:

答案 0 :(得分:1)

您可以使用$group聚合查找imei字段的唯一记录,并使用moment库从当前时间开始切入最后一个小时。

db.collection.aggregate([
  { "$match": {
    "datestamp": {
      "$lte": moment().subtract(1, 'hours').toDate()
    }
  }},
  { "$group": {
    "_id": '$imei'
  }}
])

或者甚至您也可以使用不同的查询

const imeis = await db.collection.distinct('imei', { "datestamp": { "$lte": moment().subtract(1, 'hours').toDate() } })
console.log(imeis)