博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Berkeley DB python btree
阅读量:6630 次
发布时间:2019-06-25

本文共 937 字,大约阅读时间需要 3 分钟。

当熟悉 hash db   

使用确实很方便,但是没有 想 关系数据库中的 select order by 查询 ,感觉比较郁闷! 上网 一顿 google ......

import
 bsddb
db 
=
 bsddb.btopen(
'
/tmp/spam.db
'
'
c
'
)
for
 i 
in
 range(
10
): db[
'
%d
'
%
i] 
=
 
'
%d
'
%
 (i
*
i)
db[
'
3
'
#
 9 
db.keys() 
#
 ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
db.set_location(
'
6
'
#
 36 
db.previous() 
#
 25 
db.next() 
#
 36
db.next() 
#
 47
这可以定位,并且 previous , next 什么的 (不过目前好像是针对 string 自然 排序!)

这里比较实用的 demo

import
 bsddb
db 
=
 bsddb.btopen(
'
/tmp/spam2.db
'
'
c
'
)
db[
"
2009-08-14 22:00
"
]
=
"
gg
"
db[
"
2009-08-15 22:00
"
]
=
"
cc
"
db[
"
2009-07-15 00:00
"
]
=
"
tt
"
db[
"
2009-08-16 22:00
"
]
=
"
gg
"
#
 注意 这 统配 等价 正则 = 2009-08-15.*  
#
 开始 以为能使用 正则 ,但不能 。只能简单的 xxx.* 形式的
db.set_location(
'
2009-08-15
'
)   
#
 ('2009-08-15 22:00', 'cc')
db.next() 
#
 ('2009-08-16 22:00', 'gg')
db.set_location(
'
2009-08-15
'
)   
#
 ('2009-08-15 22:00', 'cc')
db.previous() 
#
('2009-08-14 22:00', 'gg')

本文转自博客园刘凯毅的博客,原文链接:,如需转载请自行联系原博主。










你可能感兴趣的文章
LCA近期公共祖先
查看>>
Quartz快速上手
查看>>
CentOS6.5安装Kibana5.3.0
查看>>
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
EM算法求高斯混合模型參数预计——Python实现
查看>>
JS 得细心的坑位
查看>>
hdu1874 畅通project续(求最短路径)
查看>>
ArcGIS教程:Geostatistical Analyst 应用演示样例
查看>>
winform网络编程之TcpClient类,TcpListener类和UdpClient类
查看>>
CentOS7下的YUM源服务器搭建详解,过程写的很详细(转)
查看>>
AspNetCore-MVC实战系列(三)之个人中心
查看>>
JSON简述
查看>>
Missing 'name' key attribute on element activity at AndroidMan
查看>>
跨平台的WebRTC客户端框架:OpenWebRTC
查看>>
java大数字操作:BigInteger,BigDecimal(浮点型)
查看>>
WebGIS开发技术杂谈
查看>>
cvs的规范以及介绍(转)
查看>>
Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护...
查看>>
C++运算符优先级
查看>>
Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D【转】
查看>>