我有一张桌子creations
。每个都属于一个类别(带有categoryId
)。他们还有一个名为statFavorites
.
我想返回一个单一创作的平面列表,其中包含列表中每个类别的最爱。
我能想到的唯一方法是使用groupedMapReduce
. 还有其他方法吗?
var categories; // objects with an id
r.table('creations')
.filter(function(creation) {
return categories.filter(function(category) {
return category.id == creation.categoryId
}).length > 0
})
.groupedMapReduce(function(row) {
return row("categoryId")
}
, function(row) { return row }
, function(best, creation) {
return r.branch(creation("statFavorites").gt(best("statFavorites")), creation, best
})
上面发生了两件事:首先,我正在过滤创作以仅匹配我关心的类别(相当于in
mongo 中的查询。如何在重新思考中做到这一点?)
其次,我得到了每个人中最喜欢的。
有没有更好的方法来做到这一点?在我写数据的时候预先计算也可以。