2016-01-09 25 views
0

我想創建一個查詢,將獲得所有在mongoDB中存在超過1次的標題的文檔。如何獲取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" 
    } 

這意味着用相同的標題中存在的記錄列表的查詢DB超過1次。 我可以在Java代碼中完成它,但似乎在數據庫級別執行它會更合理。

+0

您的查詢結果有不同itemTitles – JamesB

+0

@JamesB這就是真正的對象,這是我想從數據庫中獲取 – USer22999299

回答

1

使用聚合框架,您可以通過OCCURENCES數量組itemTitle

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