2016-08-31 11 views
0

node.jsに 'gcloud'を使用しています。作成中にデータストアに割り当てられた一意のキーIDを使用してデータストアからエンティティを取得しようとしています。createQueryで一意のキーIDを使用してデータストアからエンティティを取得する方法

多くの異なるcreateQuery設定を試してみましたが、いずれも機能しません。

const kind = 'campaign'; 

var q = ds.createQuery([kind]) 
.filter('id', '=', 5672749318012928); 

var q = ds.createQuery([kind]) 
.filter('id', 5672749318012928); 

var q = ds.createQuery([kind]) 
.filter('key', '=', 5672749318012928); 

var q = ds.createQuery([kind]) 
.filter('__key__ =', ['campaign', 5672749318012928]); 

var q = ds.createQuery([kind]) 
.filter('__key__', '=', ['campaign', 5672749318012928]); 

私は、そのプロパティのいずれかを使用してクエリをテストしてきたし、それが結果を返す、うまく働い:

const kind = 'campaign'; 

var q = ds.createQuery([kind]) 
     .filter('campaign_id', '=', 1286372673); 

私は何かが足りない、あなたが実際にそのユニークなキーに基づいてフィルタリングすることができますか?

答えて

0

あなたが行うことができるはず:

var q = ds.createQuery([kind]) 
    .filter('__key__', '=', ds.key(['campaign', 5672749318012928])); 

しかし、あなたはそのキーによって単一のエンティティを取得している場合は、lookupコマンドは、より効率的である:

var k = ds.key(['campaign', 5672749318012928]) 
ds.get(k, function (err, entity) { 
    ...  
    } 
}); 

https://cloud.google.com/datastore/docs/concepts/entities https://cloud.google.com/datastore/docs/concepts/queries

関連する問題