Вам нужно использовать курсоры в Berkeley DB, чтобы пробегать все пространство ключ / значение.
В самой Berkeley DB вы должны создать курсор, а затем использовать его с флагом DB_FIRST
, за которым следует несколько вызовов с флагом DB_NEXT
, пока у вас не кончатся пары ключ / значение. Вы можете упростить код, используя только DB_NEXT
, поскольку, если вы сделаете это для вновь созданного курсора, это то же самое, что и DB_FIRST
.
При связывании с Ruby это, кажется, делается (основываясь на моих очень элементарных знаниях Ruby - вы должны быть в состоянии это исправить):
dbc = db.cursor(nil,0)
key,val = dbc.get(nil,nil,Bdb::DB_FIRST)
while key != nil do
# Process key and val as needed.
key,val = dbc.get(nil,nil,Bdb::DB_NEXT)
# or possibly .. (key,val,Bdb::DB_NEXT)
end
dbc.close()