如何查询谷歌云数据存储区中的复杂属性

时间:2016-10-06 18:47:03

标签: google-app-engine google-cloud-datastore nosql

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

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字段。 (请不要让我向上移出itemInfo属性!)。我知道,为了查询我们需要定义索引的任何内容,我在index.yaml中有taskId。

类似的东西:

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

请告诉我,我们可以以某种方式做到这一点!

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

请记住,属性名称和值区分大小写。此外,应将itemInfo属性编入索引。

相关问题