如何在Google Cloud数据存储区中查询复杂属性

how to query a complex property in google cloud datastore

我在数据存储区中创建了一个实体,该实体具有复杂的属性(或文档?我不知道该怎么称呼!请告诉我正确的名称),如下所示:

1
2
3
4
5
6
7
8
9
10
11
taskId:"T101",
taskType:"Pick",    
itemInfo:
{
"id":"00014",
"actualQty":"1",
"attributes":[{"value":"Large","name":"Size"},"value":"Blue","name":"Color"}],
"requiredQty":"10",
"imageUrl":"",
"upc":"886654801"
}

我想查询itemInfo属性中的upc字段。 (请不要让我将upc移出itemInfo属性!)。我知道要查询任何内容,都需要定义索引,并且index.yaml中有taskId。

类似的东西:

1
select * from Task where itemInfo.upc ="<some value>";

请告诉我我们可以采取某种方式!

谢谢。


假设实体Kind在数据存储区中为Task,并且具有taskIdtaskTypeitemInfo属性,并且itemInfo是嵌入式实体,则您提到的查询应该可以正常工作。

1
SELECT * FROM Task WHERE itemInfo.upc='886654801'

请记住,属性名称和值区分大小写。另外,应为itemInfo属性建立索引。