Je souhaite que le Google API documentation soit un peu plus novice.Google Datastore Utiliser Sélectionner une requête par ID à l'aide de l'API dans GAS
Je suis passé par la sélection de toutes les entités, la mise à jour d'une entité, l'insertion et la suppression. Maintenant, je voudrais commencer à sélectionner des entités spécifiques par critères. L'API https://datastore.googleapis.com/v1/projects/project-id-5200707080506492774:runQuery est à cet effet, et si je fournis la charge utile de "query: {}", j'obtiens toutes les entités. Je peux aussi filtrer par type. Mais je ne peux pas comprendre comment filtrer par une propriété. J'essaie d'obtenir une entité par nom avec cette JSON charge utile de chaîne de caractères:
var payload =
{
"query": {
"kind": [
{
"name": "Test"
}
],
"filter": {
"propertyFilter": {
"property": {
"name": "id"
},
"op": "EQUAL",
"value": {
"stringValue": "5634472569470976"
}
}
}
}
}
Mais je reçois le 200 résultats par lots:
{
"batch": {
"entityResultType": "FULL",
"endCursor": "CgA=",
"moreResults": "NO_MORE_RESULTS"
}
}
Alias: Rien n'a été trouvé.
Quelqu'un pourrait m'éclairer en ce qui concerne la façon de sélectionner par le nom/id de l'entité ou d'autres domaines de données?
EDIT:
Voici la structure de fichier de mes entités. Ils sont organisés dans le cadre du test de genre:
{
"batch": {
"entityResultType": "FULL",
"entityResults": [
{
"entity": {
"key": {
"partitionId": {
"projectId": "project-id-5200707080506492774"
},
"path": [
{
"kind": "Test",
"id": "5634472569470976"
}
]
},
"properties": {
"test": {
"stringValue": "Hi it is me"
}
}
},
"cursor": "CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA1
MDY0OTI3NzRyEQsSBFRlc3QYgICAgN6QgQoMGAAgAA==",
"version": "1503343869436000"
},
{
"entity": {
"key": {
"partitionId": {
"projectId": "project-id-5200707080506492774"
},
"path": [
{
"kind": "Test",
"id": "5639445604728832"
}
]
},
"properties": {
"test": {
"stringValue": "testtesttest"
}
}
},
"cursor": "CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA1MDY0OTI3NzRyEQsSBFRlc3QYgICAgLyhggoMGAAgAA==",
"version": "1503343008992000"
},
{
"entity": {
"key": {
"partitionId": {
"projectId": "project-id-5200707080506492774"
},
"path": [
{
"kind": "Test",
"id": "5649391675244544"
}
]
},
"properties": {
"test": {
"stringValue": "testtest"
}
}
},
"cursor": "CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA1MDY0OTI3NzRyEQsSBFRlc3QYgICAgPjChAoMGAAgAA==",
"version": "1503342946693000"
},
{
"entity": {
"key": {
"partitionId": {
"projectId": "project-id-5200707080506492774"
},
"path": [
{
"kind": "Test",
"id": "5659313586569216"
}
]
},
"properties": {
"test": {
"stringValue": "testtesttest"
}
}
},
"cursor": "CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA1MDY0OTI3NzRyEQsSBFRlc3QYgICAgNrjhgoMGAAgAA==",
"version": "1503343059530000"
},
{
"entity": {
"key": {
"partitionId": {
"projectId": "project-id-5200707080506492774"
},
"path": [
{
"kind": "Test",
"id": "5715999101812736"
}
]
},
"properties": {
"test": {
"stringValue": "hello world"
}
}
},
"cursor": "CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA1MDY0OTI3NzRyEQsSBFRlc3QYgICAgLzVkwoMGAAgAA==",
"version": "1503343819165000"
}
],
"endCursor": "CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA1MDY0OTI3NzRyEQsSBFRlc3QYgICAgLzVkwoMGAAgAA==",
"moreResults": "NO_MORE_RESULTS"
}
}
Edit:
J'ai terminé une requête de filtre pour vérifier contre mon champ de test, comme l'a demandé et obtenu le moins de 200 réponses:
{
"batch": {
"entityResultType": "FULL",
"entityResults": [
{
"entity": {
"key": {
"partitionId": {
"projectId": "project-id-5200707080506492774"
},
"path": [
{
"kind": "Test",
"id": "5715999101812736"
}
]
},
"properties": {
"test": {
"stringValue": "hello world"
}
}
},
"cursor":
"CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA
1MDY0OTI3NzRyEQsSBFRlc3QYgICAgLzVkwoMGAAgAA==",
"version": "1503343819165000"
}
],
"endCursor": "CjsSNWogc35wcm9qZWN0LWlkLTUyMDA3MDcwODA1MDY0OTI3NzRyEQsSBFRlc3QYgICAgLzVkwoMGAAgAA==",
"moreResults": "NO_MORE_RESULTS"
}
}
Avez-vous une entité '' test' avec id' '5634472569470976' et aucun ancêtre? –
La requête semble correcte. Est-ce que ** id ** est une propriété de l'entité ou essayez-vous d'effectuer une recherche par clé d'entité? Si ** id ** est en fait une propriété, quel est le type de données? Il suffit de regarder les données (5634472569470976), il semble qu'il peut être un entier, mais le filtre recherche un type de chaîne. S'il vous plaît vérifier/confirmer. –
J'ai ajouté ma structure de données d'une requête de type à mon message original. Dites que je veux tirer entité 5634472569470976 par son ID. Comment puis-je filtrer par sa clé lorsque l'API ne me laisse filtrer que par propriétés? Ai-je besoin d'ajouter un champ d'identification séparé juste pour que je puisse tirer par un ID? –