从mongodb集合中删除文档,并保留两个条件

时间:2020-03-16 15:01:40

标签: arrays mongodb mongoose mongodb-query

我收集了有关车辆信号的信息。每天和每辆车,我都有很多文件。我想要的是每天每辆车只留下一份文件,主要是每天最后一份。有任何解决方案吗?

我的收藏的结构是这样的:

{
  "_id": "5e067c1b6c7d95203754a5db",
  "account": {
    "account_id": 7001
  },
  "date": "2019-12-18",
  "carrier": "CARRIERABC",
  "num_plate": "JHGF78",
  "vehicle_type": 3,
  "provider": "PROVIDERXYZ",
  "MIN_CONNECTION": "2019-12-18T00:00:04.000Z",
  "MAX_CONNECTION": "2019-12-18T23:59:56.000Z",
  "AVG": 96.248069842024
}

1 个答案:

答案 0 :(得分:0)

(为简单起见,我删除了所有其他属性)

让我们假设您每个日期和num_plate只需要一个最新记录。

db.entries.update({
  "date": "2019-12-18",
  "num_plate": "JHGF78",
}, {
  "date": "2019-12-18",
  "num_plate": "JHGF78",
  "VALUE" : 1
}, {
  upsert: true
});

db.entries.update({
  "date": "2019-12-18",
  "num_plate": "JHGF78",
}, {
  "date": "2019-12-18",
  "num_plate": "JHGF78",
  "VALUE":  2
}, {
  upsert: true
});

db.entries.update({
  "date": "2019-12-18",
  "num_plate": "JHGF78",
}, {
  "date": "2019-12-18",
  "num_plate": "JHGF78",
  "VALUE": 3
}, {
  upsert: true
});

如果您运行上述查询,则只有该车辆的最后一条记录,因为您的匹配条件就在那里。

相关问题