【问题标题】:How can I get data with key如何使用密钥获取数据
【发布时间】:2017-05-10 02:22:56
【问题描述】:

我想用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)
})

结果为空[]

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 为我节省了很多时间!
    【解决方案2】:

    我回答我自己

    需要datastoreClient.int(_id)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2017-05-09
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多