Я работаю над проектом, в котором использую Riak с Ripple, и столкнулся с проблемой. По какой-то причине я получаю дубликаты при переходе по структуре ссылок. Когда я связываю прогулку с помощью curl, я не получаю дубликатов, насколько я вижу.
Разница между моей прогулкой по ссылкам на основе завитков
curl -v http://127.0.0.1:8098/riak/users/2306403e5177b4716da9df93b67300824aa2fd0e/_,projects,0/_,tasks,1
и моя прогулка по ссылке на ruby ripple/riak-client
result = Riak::MapReduce.new(self.robject.bucket.client).
add(self.robject.bucket,self.key).
link(Riak::WalkSpec.new({:key => 'projects'})).
link(Riak::WalkSpec.new({:key => 'tasks', :bucket=>'tasks'})).
map("function(v){ if(!JSON.parse(v.values[0].data).completed) {return [v];} else { return [];} }", {:keep => true}).run
Насколько я могу судить по карте в конце.
Однако результат map/reduce содержит несколько дубликатов. Я не могу уложить в голове, почему. Теперь я решил удалить дубликаты на основе ключа, но я хочу, чтобы результат riak не содержал дубликатов, поскольку удаление дубликатов в конце кажется пустой тратой времени.
Я пробовал следующее:
- Убедитесь, что в наборах ссылок моих объектов пульсации нет дубликатов.
- Загрузка данных без сокращения карты, но ссылка содержит повторяющиеся ключи.
Любая помощь приветствуется.