2014-07-21 40 views
0

我已經收集了來自一個音樂事件的10k條推文。你可以想象有很多轉推。爲了做適當的分析,我想統計每個轉推,然後刪除轉推或刪除重複。在NoSQL中我找不到方法,所以在這裏尋求幫助和建議。使用MongoDB和Robomongo GUI客戶端。NoSQL重複計數和刪除

而且通過重複我指的是相同的文本字段中的條目

類別包括在這種類型的結構:

{ 
    "_id" : ObjectId("53cd28ea51f4fbe9f6e04798"), 
    "name" : "Positivus Festival", 
    "screenName" : "positivus", 
    "text" : "RT @Valsts_policija: Tuvojas @positivus , tādēļ esam sagatavojuši septiņus drošības ieteikumus patīkamai atpūtai #Positivus110 http://t.co/…", 
    "time" : 1405606042.803368 
} 
+0

那麼重複的樣子是什麼?完全相同的文字? –

+0

是的,文本字段是相同的。 Failes提到,對不起 – andris

回答

2

我會使用MongoDB的聚合框架的鳴叫:http://docs.mongodb.org/manual/aggregation/

在這種情況下,我相信以下代碼將打印出所有重複推文及其總數:

db.collectionname.aggregate([ 
     {$group : { _id: "$text" , count : { $sum: 1}}}, 
     {$match : { count : { $gt : 1 } }} ]) 

您應該看到這樣的結果:

{ 
    "_id" : "RT @Valsts_policija: Tuvojas @positivus , tādēļ esam sagatavojuši septiņus drošības ieteikumus patīkamai atpūtai #Positivus110 http://t.co/…", 
    "count" : 2 
} 

假設有2個鳴叫與相同的文字。

0

特別是在MongoDB中,只是爲了獲取特定領域(「在所有的獨特價值你的案例文字「)。

嘗試命令

db.collection.distinct('text') 

,你會得到了所有具有鮮明的文本:)

+0

這是偉大的,幾乎我需要的。這確實回退所有獨特的推文,但如何將其反轉,因此它只返回重複的推文? – andris