我正在尝试使用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}]}
第二种方法的明显缺点是不同用户会使用相同的单词,因此只需一个单词集就可以帮助保持数据大小。
有人可以告诉我这里应该做什么吗?有没有我在文档中可能忽略的方法?
答案 0 :(得分:1)
第二种方法的明显缺点是相同的词 将用于不同的用户,所以只有一个单词 收集将有助于保持数据大小。
不,这是使用文档db的本质。数据大小在非SQL解决方案中确实不是问题,重要的是您可以轻松地访问数据的速度和速度。
您的第一种方法是典型的教科书关系模型。在mongo中使用它没有任何优势(尽管你可以在mongo中以关系方式对其进行建模)。相反,第二种方法为您提供