#google-app-engine #google-cloud-datastore #nosql
#google-app-engine #google-cloud-хранилище данных #nosql
Вопрос:
У меня есть объект, созданный в хранилище данных со сложным свойством (или документом? Я точно не знаю, как это назвать! Пожалуйста, скажите мне правильное имя для него), который выглядит следующим образом:
taskId: "T101",
taskType: "Pick",
itemInfo:
{
"id":"00014",
"actualQty":"1",
"attributes":[{"value":"Large","name":"Size"},"value":"Blue","name":"Color"}],
"requiredQty":"10",
"imageUrl":" ",
"upc":"886654801"
}
Я хочу запросить поле upc в свойстве ItemInfo. (Пожалуйста, не просите меня переместить upc из свойства ItemInfo!). Я знаю, что для запроса чего-либо нам нужно определить индекс, и у меня есть TaskId в моем index.yaml.
что-то вроде:
select * from Task where itemInfo.upc = "<some value>";
Пожалуйста, скажите мне, что мы можем это как-то сделать!
Спасибо.
Ответ №1:
Предполагая, что тип объекта находится Task
в хранилище данных и что у него есть taskId
taskType
свойства и itemInfo
свойства, itemInfo
являющиеся встроенной сущностью, упомянутый вами запрос должен работать нормально.
SELECT * FROM Task WHERE itemInfo.upc='886654801'
Просто имейте в виду, что имена и значения свойств чувствительны к регистру. Кроме того, itemInfo
свойство должно быть проиндексировано.