数据库连接
通过编写 connect.py 连接到数据库
import pysequoiadb
from pysequoiadb import client
# 使用默认的端口连接到数据库
host = 'localhost'
port = 11810
# 当数据库已经创建用户时,应该使用正确的用户及密码连接到数据库
# user= '', password= ''
db = client(host, port)
print 'Connect success'
db.disconnect()
Note:
本示例连接到本地数据库的 11810 端口,使用的是空的用户名和密码。用户可以根据实际情况配置参数。例如:将上述代码中的 db = client() 修改为 db = client('192.168.10.188', 11810)。
创建集合空间和集合
# 连接至数据库
db = client("localhost", 11810)
# 创建集合空间
cs_name = 'sample'
cs = db.create_collection_space(cs_name)
# 创建集合
cl_name = 'employee'
cl = cs.create_collection(cl_name)
用户创建集合后,可对集合做增删改查等操作
插入数据
# 创建 dict 对象
record = {"name":"Tom", "age":24}
oid = cl.insert ( record )
record 为输入参数,输入需要插入的数据。dict 对象将会被转换成 bson 插入到集合中。oid 是插入该记录时,返回的 bson 结构的 objectid。
查询
查询操作需要一个游标对象存放查询的结果到本地。要获得查询的结果需要使用游标操作。本示例使用了游标操作的 next 接口,表示从查询结果中取到一条记录。
import pysequoiadb
from pysequoiadb import client
from pysequoiadb.error import SDBEndOfCursor
cr = cl.query()
while True:
try:
record = cr.next()
print(record)
except SDBEndOfCursor:
break
cr.close()
索引
集合对象 collection 中创建一个以“name”为升序、“age”为降序的索引
index_name = "index_name"
idx = OrderedDict([('name', 1), ('age', -1)])
cl.create_index ( idx, index_name, False, False )
更新
在集合对象 collection 中更新了记录
rule = {"$set":{ "age":19}}
print rule
cl.update( rule )
示例中没有指定数据匹配规则,所以将更新集合中的所有记录。
错误处理
调用 API 遇到的异常时,python 驱动会将异常直接抛出。可以选择捕获异常,并打印异常信息或是进行一些其他操作。SDBBaseError 异常是基础异常,异常主要包含 errcode、detail 和 error_object。异常的详情可以查询 Python API。示例如下:
try:
cl = db.get_collection("sample.employee")
condition = {"_id":{"$oid":"5d035e2bb4d450b04fcd0dff"}}
cl.delete ( condition=condition )
except SDBBaseError as e:
print(e)
异常信息如下:
SDB_INVALIDARG(-6), Invalid Argument, detail: Failed to delete