如何以编程方式更改Google Cloud Datastore项目的名称空间?

问题描述 投票:0回答:1

我们正在开发一个库,用于管理对Google Cloud Datastore项目的访问。我们的数据存储项目由多个名称空间组成(一个用于开发,一个用于测试等)。要访问存储的数据,我们使用Google提供的查询构建器。我们需要一个用于特定名称空间的“种类查询”,但是在他们的docs中,他们解释

此类型的查询隐式限于当前命名空间。

我们尝试使用NamespaceManager更改当前的名称空间,但是由于它不是Google App Engine应用程序,因此无法正常工作。是否可以更改当前名称空间?

java google-cloud-datastore
1个回答
3
投票

您可以(可选)在RunQueryRequest上设置名称空间。对于您的示例(某种元数据查询),Java代码为:

Query.Builder query = Query.newBuilder();
query.addKindBuilder().setName("__kind__");
query.addProjectionBuilder().setProperty(makePropertyReference("__key__"));

RunQueryRequest.Builder req = RunQueryRequest.newBuilder()
    .setQuery(query);
req.getPartitionIdBuilder().setNamespace("my_namespace");

datastore.runQuery(req.build());

和在Python中:

req = datastore.RunQueryRequest()
req.partition_id.namespace = 'my_namespace'

query = req.query
query.kind.add().name = '__kind__'
query.projection.add().property.name = '__key__'

datastore.run_query(req)
© www.soinside.com 2019 - 2024. All rights reserved.