0

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

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

这显然只能在“一对一”的基础上工作,而且不好。

我正在努力研究如何最好地使其成为用户和单词之间的“一对多”关系。我会像这样将用户关系存储在我的单词集合中:

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

或者我会将字数附加到用户集合中吗?

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

第二种方法的明显缺点是相同的单词将在不同的用户中使用,因此拥有单个单词集合将有助于降低数据大小。

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

4

1 回答 1

1

第二种方法的明显缺点是相同的单词将在不同的用户中使用,因此拥有单个单词集合将有助于降低数据大小。

不,这就是使用文档数据库的本质。在非 sql 解决方案中,数据大小实际上不是问题,重要的是访问数据的难易程度和速度。

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

  • Fatser 读取/写入,因为每个单词都存储在用户内部。您不需要为此执行多个查询
于 2011-10-24T15:26:05.317 回答