如何使用berkeley db检索键小于指定键的数据?

Posted

技术标签:

【中文标题】如何使用berkeley db检索键小于指定键的数据?【英文标题】:How to retrieve data whose key is less than a specified key using berkeley db? 【发布时间】:2012-11-05 02:50:52 【问题描述】:

正如您在标题中看到的那样,我想检索键小于指定键的数据,然后我需要连接许多游标,其中一个可能大于指定字符串,另一个可能小于指定整数。默认情况下,DB_SET_RANGE 将返回大于或等于指定键的键。

我是否应该使用重写比较函数来实现它,并将其设置为数据库的比较函数,就像set_bt_compare()一样?

谢谢!

【问题讨论】:

【参考方案1】:

我想您会发现您仍然需要围绕 DB_NEXT 或 DB_PREV 进行自己的循环,并使用自己的逻辑来比较键并在更复杂的条件下退出循环。

您可以使用 DB_SET_RANGE 找到键更大的点,然后使用 DB_PREV 转身并向后移动。或者,您可以使用 DB_FIRST 从数据库的开头开始,然后使用 DB_NEXT 向前扫描,直到达到更大的位置。

【讨论】:

以上是关于如何使用berkeley db检索键小于指定键的数据?的主要内容,如果未能解决你的问题,请参考以下文章

对于要存储 15.000.000 个整数键的 Berkeley DB,应使用哪种访问方法?

Berkeley DB:仅检索密钥

从值中检索一系列数据 Berkeley DB

无法从 C 中的 Berkeley DB 检索值

浮动索引上的 Berkeley DB C++ 查询

berkeley db java中的多个键