0

次の GQL クエリを実行しようとしています。

function gqlExample(callback) {
  datastore.runQuery({
    gqlQuery: {
      queryString: 'SELECT * FROM Person',
    }
  }).execute(function(err, result) {
    if (!err) {
      // Iterate over the results and return the entities.
      result = (result.batch.entityResults || []).map(
        function(entityResult) {
          return entityResult.entity;
        });
    }
    callback(err, result);
  });
}

次のページで上記の例を見つけました: http://ec2-54-66-129-240.ap-southeast-2.compute.amazonaws.com/httrack/docs/cloud.google.com/datastore/docs/コンセプト/gql.html

それは有効な node.js の例であると述べていますが、クエリを実行すると次のエラーが発生します。

/Users/xxxx/relay-fullstack/server/data/campaign-datastore.js:245
  }).execute(function (err, result) {
     ^
TypeError: ds.runQuery(...).execute is not a function
    at Object.campaignSearchGql (campaign-datastore.js:265:6)
    at Test.<anonymous> (datastore-test.js:29:16)
    at Test.bound [as _cb] (/Users/xxxx/relay-fullstack/node_modules/tape/lib/test.js:63:32)
    at Test.run (/Users/xxxx/relay-fullstack/node_modules/tape/lib/test.js:82:10)
    at Test.bound [as run] (/Users/xxxx/relay-fullstack/node_modules/tape/lib/test.js:63:32)
    at Immediate.next [as _onImmediate] (/Users/xxxx/relay-fullstack/node_modules/tape/lib/results.js:70:15)
    at tryOnImmediate (timers.js:534:15)
    at processImmediate [as _immediateCallback] (timers.js:514:5)

ノードに Google クラウドの最新バージョンを使用しています。

"google-cloud": "^0.38.3",

gcloud と node で GQL クエリが正しく実行されている人はいますか? どんな助けでも大歓迎です。

4

1 に答える 1

2

これは明らかに Datastore ドキュメントのキャッシュ バージョンです。これらの Node.js スニペットは、 httpsgoogleapis : //github.com/google/google-api-nodejs-clientという別のライブラリを使用しています。

他のライブラリ はgcloud-node、現時点では GQL をサポートしていません。

于 2016-08-12T16:24:38.213 に答える