Google数据存储区未检索实体

时间:2018-04-18 13:38:03

标签: node.js google-cloud-datastore

我一直在使用谷歌云库,我可以在DataStore中成功保存数据,特别是我的粒子电子设备(在这里使用他们的教程https://docs.particle.io/tutorials/integrations/google-cloud-platform/

我现在遇到的问题是再次检索数据。 我正在使用此代码,但它没有返回任何内容

    function getData(){
var data = [];
const query = datastore.createQuery('ParticleEvent').order('created');
datastore.runQuery(query).then(results => {

    const event = results[0];
    console.log(results);

    event.forEach(data => data.push(data.data));
});

console.log(data)

}

但每次返回空时专门返回此: [ [], { moreResults: 'NO_MORE_RESULTS', endCursor: 'CgA=' } ] ,我无法弄清楚为什么,因为我在这个数据存储区中保存了多个实体。

由于

1 个答案:

答案 0 :(得分:1)

在教程中提到的repo的tutorial.js中,我看到使用此数据创建了ParticleEvent个实体:

var obj = {
    gc_pub_sub_id: message.id,
    device_id: message.attributes.device_id,
    event: message.attributes.event,
    data: message.data,
    published_at: message.attributes.published_at
}

这意味着实体没有created属性。我怀疑按此类属性名称排序查询是查询不返回结果的原因。来自Datastore Queries(强调我的):

  

结果包括至少有一个值的所有实体   过滤器和排序顺序中命名的每个属性,以及哪些属性   属性值符合所有指定的过滤条件。

我尝试按published_at排序查询,这似乎是具有最接近created的含义的属性。