У меня есть две корзины в riak client_user и account_user, я пытаюсь сделать mapreduce, чтобы получить все объекты пользователей.

У меня есть два сегмента riak: «client_user», который содержит ключ compose_key, такой как clientid-userid, и другой сегмент «account_user», который содержит идентификатор пользователя в качестве ключа и информацию о пользователях. Я пытаюсь сделать один запрос mapreduce, чтобы узнать всю информационную базу пользователей на одном клиенте. Я ищу в Интернете, я не могу найти никакого ответа. Кто-нибудь может помочь мне с запросом javascript mapreduce на riak? действительно ценю это.


person Yang Sun    schedule 18.03.2013    source источник


Ответы (1)


Если ключ является составным, например clientId_userId, нет возможности запросить его по отдельности, чтобы найти пользователей, связанных с этим клиентом. Вы можете перечислить все ключи; Напишите фазу сопоставления javascript, чтобы разделить ключ на основе разделителя; Передайте результаты этой операции в ссылку SetMemberFilter на основе идентификатора клиента; Используйте другую операцию уменьшения карты для корзины account_user с этим SetMemberFilter.

Ваши данные неправильно смоделированы для Riak. Если бы информация о пользователе содержала только вторичный индекс для идентификатора клиента, это был бы простой вызов этого сегмента. Боюсь, простого ответа нет. Вы все еще можете получить информацию, используя ряд шагов, которые я описал в своем ответе, но это будет неэффективно. Другого пути нет.

person Deepak Bala    schedule 20.03.2013