【发布时间】:2012-02-24 11:47:52
【问题描述】:
我正在寻找一种方法来更新名为“posts”的集合中的每个文档。
帖子会定期更新流行度(网站范围内的流行度)和强度(与特定用户的估计相关性),每个帖子都来自不同的来源。我需要做的是增加每个帖子的受欢迎程度和强度,以获得第三个领域,相关性。相关性用于对帖子进行排序。
class Post
include Mongoid::Document
field :popularity
field :strength
field :relevance
...
目前的实现如下:
1) 我将映射/归约到一个单独的集合,该集合存储帖子 ID 和计算的相关性。
2) 我从地图缩减结果中单独更新每个帖子。
这是大量的单独更新查询,将每个帖子映射到自己的结果(一对一)似乎很愚蠢,只是为了再次更新帖子。是否可以就地繁殖,或者做某种就地地图?
【问题讨论】:
-
如果我的解决方案有效,这可能是重复的:stackoverflow.com/a/8230759/131227
-
感谢您的链接。我犹豫是否要覆盖原始集合中的整个文档,因为帖子集合会随着用户在网站上执行操作而定期更新,而且我会担心并发性。