У меня есть эта структура в моем хранилище данных gcloud
"data": {
"obj": {
"added_time": "new Date().toUTCString()",
"person_id": 13,
"places": [{
"place_id": 12,
"place_name": "First Place",
"place_type": "1",
"fruits": [{
"id": "1",
"name": "orange"
},
{
"id": "2",
"name": "apple"
}
]
},
{
"place_id": 15,
"place_name": "secondPlace",
"place_type": "1",
"fruits": [{
"id": "1",
"name": "Grapes"
},
{
"id": "2",
"name": "Banana"
}
]
}
]
}
}
};
Я хочу запросить по add_time, person_id и place_id
Это мой составной индекс
indexes:
- kind: persons
properties:
- name: obj.person_id
- name: obj.added_time
- name: obj.places.place_id
Я пробовал этот запрос
const query = datastore
.createQuery("persons")
.filter("obj.person_id", "=", 13)
.filter("obj.places.place_id", "=", 12);
Это работает, но дает мне и все другие места.Например, в этом запросе я должен получить только объект place с place_id 12, но я получаю другой объект с place_id 13, который не должен появляться.
1) Как получить только один объект?
2) Можно ли использовать оператор 'in' в хранилище данных, как places.place_id in (12,13)
Спасибо.