如何获取同一字段在mongoDB中出现超过1次的文档列表?

How to get the list of docs that exist more than 1 time in mongoDB with the same field?

我想创建一个查询,以获取标题在 mongoDB 中出现超过 1 次的所有文档。

假设这是我的文档:

{
  "itemID" : "AAN88998JJCA",
  "itemTitle" : "AAAA
}

{
  "itemID" : "AAN8BB98JJCA",
  "itemTitle" : "AAAA"
}

{
  "itemID" : "A5N84998JJ3A",
  "itemTitle" : "AACC"
}

{
  "itemID" : "A2N81998JJC1",
  "itemTitle" : "AACC"
}

{
  "itemID" : "A2N81998JJC1",
  "itemTitle" : "BBBB"
}

我想设置一个将生成

列表的查询
 {
      "itemID" : "AAN88998JJCA",
      "itemTitle" : "AAAA
    }

    {
      "itemID" : "AAN8BB98JJCA",
      "itemTitle" : "AAAA"
    }

    {
      "itemID" : "A5N84998JJ3A",
      "itemTitle" : "AACC"
    }

    {
      "itemID" : "A2N81998JJC1",
      "itemTitle" : "AACC"
    }

表示同名记录在数据库中出现超过1次。 我可以在 Java 代码中做到这一点,但似乎在数据库级别上做到这一点更合理。

使用聚合框架,您可以按出现次数对 itemTitle 进行分组:

db.collection.aggregate([
    {
        $group: {
            _id: "$itemTitle",
            total: { $sum: 1 }
        }
    }
    ,{
        $match: {
            total: { $gt: 1 }
        }
    }
]);