2011-12-12 43 views
1

这让我感到困惑不已。为什么我无法直接在查询上执行此操作?为什么我无法直接将此Redis查询结果转换为散列?

(rdb:1) $redis.zrange(key(p_id, range), 0, -1, {withscores: true}) 
["2008", "15769"] 

(rdb:1) Hash["2008", "15769"] 
{"2008"=>"15769"} 

(rdb:1) Hash($redis.zrange(key(p_id, range), 0, -1, {withscores: true})) 
NoMethodError Exception: undefined method `Hash' for Player:Module 

(rdb:1) Hash[$redis.zrange(key(p_id, range), 0, -1, {withscores: true})] 
{} 
+0

将结果永远是一对? – tokland

+0

他们将.. ..更多的字符 –

+0

好吧,回答更新然后,哈希[[对]]也是可能的。 – tokland

回答

3

你应该解开参数:

Hash[*$redis.zrange(key(p_id, range), 0, -1, {withscores: true})] 

Hash#[]也需要对数组的,所以如果结果始终是一对:

Hash[[$redis.zrange(key(p_id, range), 0, -1, {withscores: true})]]