我们正在开发一个库来管理对 Google Cloud Datastore 项目的访问。我们的数据存储项目由多个命名空间组成(一个用于开发,一个用于测试,等等)。 为了访问存储的数据,我们使用 Google 提供的查询构建器。我们需要对某个命名空间进行“类查询”,但在其 docs 中他们解释
Queries of this type are implicitly restricted to the current namespace.
我们尝试使用 NamespaceManager 更改当前命名空间,但由于这不是 Google App Engine 应用程序,因此不起作用。是否可以更改当前的命名空间?
最佳答案
您可以(可选)在 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)
关于java - 如何以编程方式更改 Google Cloud Datastore 项目的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24796318/