代码之家  ›  专栏  ›  技术社区  ›  Lakshman Kumar

如何在MongoDB中过滤文档,然后得到一个忽略重复的文档?

  •  0
  • Lakshman Kumar  · 技术社区  · 6 年前

    这是我文档的模式

    "number" : 4657821598,
    "hospitalID" : "mahaveer_bgm",
    "value" : 1 
    

    首先,我想根据 医院ID 然后我想删除 数字 . 例如 如果有2个文档具有相同的 数字 之后 医院ID 筛选仅获取最新文档。 提前感谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   s7vr    6 年前

    您可以使用以下聚合。

    下面的查询使用 $match 然后 $sort 关于数字描述和 $group 在编号上选择最新文档。

    $$ROOT 以引用整个文档。

    db.col.aggregate([
      {"$match":{"hospitalID":"mahaveer_bgm"}},
      {"$sort":{"number":-1},
      {"$group":{
        "_id":"$number",
        "name":{"$first":"$$ROOT"}
      }}
    ])