我想从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)
})
结果为空[]
请帮助如何使用节点中的密钥获取数据。
答案 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)]))