Я пытаюсь ограничить результаты для каждого поля user_id
.RethinkDB, эффективно ограничивает результаты по полю
К примеру, у меня есть список пользователей IdS и я хочу, чтобы ограничить 2 friends
каждого пользователя из множества friends
выбора.
Таблица: пользователи
{
name: String,
surname: String
}
Таблица: друзей
{
user_id: ObjectId // refer to user
friend_id: ObjectId // refer to user
}
Запрос
Ближайший запрос я мог бы написать для достижения этой цели заключается в следующем:
var userIds = [1,2];
r.map(userIds, function(userId) {
return r.table('friends').filter(function(friend) {
return userId.eq(friend('user_id'));
}).limit(2).coerceTo('array');
});
результате которых:
[
[
{
user_id: 1,
friend_id: 2
},
{
user_id: 1,
friend_id: 3
},
],
[
{
user_id: 2,
friend_id: 3
},
{
user_id: 2,
friend_id: 4
},
]
]
я использую правильный подход?