介绍还原python SDK的新版本:v1.3.0:标签支持和更多
#python #news #database #reductstore

我们很乐意宣布发布version 1.3.0为Python的还原SDK!该版本引入了几个新功能,以帮助用户更好地组织和过滤其数据。

最显着的新功能之一是在编写和查询时能够将标签附加到数据上。标签是键值对,可用于对数据进行分类和分类。例如,您可能会使用标签存储元数据,例如其MD5 Sum或Class。要开始使用标签,您需要比1.3.0的还原店数据库的版本。

这是写数据时如何使用标签的示例:

from reduct import Client

client = Client("https://play.reduct.store", api_token="reduct")
bucket = await client.create_bucket("my_data", exist_ok=True)
await bucket.write(
    "entry-1", b"something", labels={"label1": 123, "label2": 0.1, "label3": "hey"}
)

在此示例中,我们将标签{"label1": 123, "label2": 0.1, "label3": "hey"}附加到数据。

读取数据时,您可以访问附加的标签:

# Read the data back, if no timestamp is specified, the latest record is returned
async with bucket.read("entry-1") as record:
    assert record.labels == {"label1": "123", "label2": "0.1", "label3": "hey"}

    data = await record.read_all()
    assert data == b"something"

此版本中的另一个新功能是能够根据标签查询数据。查询方法现在接受两个新参数,包括和排除,它们允许您根据附加的标签过滤查询结果。

例如,您可以使用Inclube参数查询具有特定标签的记录:

async for record in bucket.query(
        "entry-1", include={"label1": "value1", "label2": "value2"}
):
    # Do something with the record
    pass

此查询返回使用label1等于value1label2等于value2的所有记录,并且忽略了所有其他标签。

另一方面,您可以使用排除参数查询没有特定标签的记录:

async for record in bucket.query(
        "entry-1", exclude={"label1": "value1", "label2": "value2"}
):
    # Do something with the record
    pass

此查询返回没有label1等于value1label2等于value2的所有记录。

此外,您还可以通过Content-Type标头进行读写操作,将将此标头添加到所有读取和写入数据的请求中。

await bucket.write(
    "entry-1", b"{'some': 'json'}", content_type="application/json"
)

async with bucket.read("entry-1") as record:
    assert record.content_type == "application/json"

使用这些新功能,您可以更轻松地组织和过滤数据,从而更轻松地找到所需的信息。我们鼓励您升级到此最新版本的SDK并开始利用这些新功能:

pip install reduct==1.3.0

我们希望您喜欢此版本的新功能和改进,一如既往,我们欢迎您的反馈和建议对未来的更新。不要犹豫,在Discord或通过就Abiaoqian进行讨论。

感谢您使用ReductStore