如何使用密钥获取数据

时间:2017-05-10 02:22:57

标签: node.js database google-cloud-datastore google-cloud-platform

我想从google datastore

中找到key的数据 正常RDB中的

select * from items where key = '123124124234221' 

在GQL查询中

SELECT * from items WHERE __key__ HAS ANCESTOR KEY(item, 123124124234221)

它有效!

但在nodejs

let query = datastoreClient.createQuery('items')
  .hasAncestor(datastoreClient.key(['item', '123124124234221']))

datastoreClient.runQuery(query, (err, entity) => {
  if (err) { reject(err) }
  console.log(entity)
})

结果为空[]

请帮助如何使用节点中的密钥获取数据。

2 个答案:

答案 0 :(得分:2)

您应该直接获取实体,而不是进行查询。

var key = datastoreClient.key(['item', datastore.int('123124124234221')]);
datastoreClient.get(key, function(err, entity) {
  console.log(err || entity);
});

答案 1 :(得分:0)

我回答自己

需要datastoreClient.int(_id)

let query = datastoreClient.createQuery(keyName)
  .hasAncestor(datastoreClient.key([keyName, datastoreClient.int(_id)]))