【问题标题】:Remove docs from mongodb collection and leave one by two conditions从 mongodb 集合中删除文档并留下一个两个条件
【发布时间】:2020-06-27 16:54:36
【问题描述】:

我收集了有关车辆信号的集合。每天每辆车,我有很多文件。我想要的是每天每辆车只留下一份文件,主要是每天最后一份。有什么办法可以解决这个问题?

我的收藏结构是这样的:

{
  "_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
}

【问题讨论】:

    标签: arrays mongodb mongoose mongodb-query


    【解决方案1】:

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

    假设您只需要每个日期和 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
    });
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      相关资源
      最近更新 更多