2014-07-21 39 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