У меня есть таблица 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
})
Две вещи происходят выше: во-первых, я фильтрации творения только соответствовать категории I небезразличны (эквивалентом in
запроса в Монго Как это сделать в переосмыслении.?)
Второму , Я получаю наибольшую отдачу от каждого из них.
Есть ли лучший способ сделать это? Также может быть хорошо предсказать, когда я пишу данные.