0

私はGoogle API documentationがもう少し新しい初心者だったと思います。Google Datastore Use GASのAPIを使用してIDでクエリを選択

私はすべてのエンティティを選択する、エンティティを更新する、挿入する、削除するという作業をしました。今度は、特定のエンティティを基準で選択したいと考えています。 API https://datastore.googleapis.com/v1/projects/project-id-5200707080506492774:runQueryはこの目的のためのもので、「query:{}」のペイロードを提供すると、すべてのエンティティが取得されます。私はKindでフィルタリングすることもできます。しかし、私はどのようにプロパティでフィルタリングするかを理解することはできません。

var payload = 

{ 
    "query": { 
    "kind": [ 
     { 
     "name": "Test" 
     } 
    ], 
    "filter": { 
     "propertyFilter": { 
     "property": { 
      "name": "id" 
     }, 
     "op": "EQUAL", 
     "value": { 
      "stringValue": "5634472569470976" 
     } 
     } 
    } 
    } 
} 

しかし、私は200の結果のバッチを取得::私はこのJSON文字列化されたペイロードを名前でエンティティを取得しようと

AKA
{ 
    "batch": { 
    "entityResultType": "FULL", 
    "endCursor": "CgA=", 
    "moreResults": "NO_MORE_RESULTS" 
    } 
} 

:何が見つかりませんでした。

エンティティの名前/ IDなどのデータフィールドを選択する方法について私に教えてもらえますか?


編集:ここでは

は私のエンティティのファイル構造です。私は要求されたとして、私のテストフィールドに対してチェックするために、フィルタクエリを完了し、200以下の応答を得た

{ 
    "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" 
    } 
} 

{ 
     "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" 
    } 
} 

編集:彼らは一種のテストの下に編成されています

+1

あなたが '' id'と 'Test'エンティティ5634472569470976'なし祖先を持っていますか:私はこれらの線に沿って何かが考える? –

+1

要求が正しいように見えます。 ** id **はエンティティのプロパティですか、エンティティキーで検索しようとしていますか? ** id **が実際にプロパティである場合、データ型は何ですか?データ(5634472569470976)を見ると、Integerかもしれませんが、フィルタは文字列型を探しています。ダブルチェック/確認してください。 –

+0

私は元の投稿にkindクエリのデータ構造を追加しました。エンティティ5634472569470976をIDで取得したいとします。 APIによってプロパティでフィルタリングできるのは、そのキーでどのようにフィルタリングするのですか?私はIDで引っ張ることができるように別のIDフィールドを追加する必要がありますか? –

答えて

1

少なくともndbのpythonデータストアライブラリidはプロパティ名として使用できません。あなたの質問がうまくいかない理由もあります。あなたは、エンティティのproperties構造内idという名前のプロパティが表示されていないすべての後

、それは実際にkeyの一部である - >path構造。

ただ、例えば、有効なプロパティ(propertiesの内側に記載されている、すなわち1)を使用してみてください、確認する:

"filter": { 
    "propertyFilter": { 
     "property": { 
      "name": "test" 
     }, 
     "op": "EQUAL", 
     "value": { 
      "stringValue": "hello world" 
     } 
    } 
} 

あなたは、エンティティのキ​​ーIDをお持ちの場合は、エンティティを取得するためにクエリを実行する必要はありません(トランザクション内でそのことを許可することさえできないかもしれません)、projects.lookup methodを使用してエンティティをキーで直接プルすることができます。

{ 
    "keys": [ 
     { 
      "path": [ 
       { 
        "kind": "Test", 
        "id": "5634472569470976" 
       } 
      ] 
     } 
    ], 
} 
+0

うん、私は元の投稿に追加された200の成功結果を得た。では、キーパスのエンティティIDがわかっていても、それ以外は何も分からない場合、どのようにトランザクションを引き出すのですか?適切な方法を使用していますか、カスタムIDを作成する必要がありますか? –

+1

更新された回答を参照してください。 –

+0

ありがとう、ダン!私は何かが欠けていると思った。 –

関連する問題