存储字频数据

时间:2011-10-24 13:52:18

标签: mongodb word-frequency

我正在尝试使用Mongo存储字频数据。每个单词都需要与用户关联,以便我可以计算个人使用每个单词的频率。目前我的单词集合如下所示:

{'Hello':3, 'user_id':1}

这显然只适用于“一对一”,并且不好。

我正在努力弄清楚如何最好地将这个用户和单词之间的“一对多”关系。我会将用户关系存储在我的单词集合中,如下所示:

{'word':"Hello", 'users':[{'id':1, 'count':4},{'id':2, 'count':10}]}

或者我会将单词count附加到用户集合中吗?

{'id':1, 'username':'SomeUser', 'words':[{'Hello':4}]}

第二种方法的明显缺点是不同用户会使用相同的单词,因此只需一个单词集就可以帮助保持数据大小。

有人可以告诉我这里应该做什么吗?有没有我在文档中可能忽略的方法?

1 个答案:

答案 0 :(得分:1)

  

第二种方法的明显缺点是相同的词   将用于不同的用户,所以只有一个单词   收集将有助于保持数据大小。

不,这是使用文档db的本质。数据大小在非SQL解决方案中确实不是问题,重要的是您可以轻松地访问数据的速度和速度。

您的第一种方法是典型的教科书关系模型。在mongo中使用它没有任何优势(尽管你可以在mongo中以关系方式对其进行建模)。相反,第二种方法为您提供

  • Fatser读/写,因为每个单词都存储在用户内部。您不需要为此
  • 执行多个查询