如何从Google Cloud DataStore获取自动生成的ID

时间:2015-05-26 05:56:09

标签: google-cloud-platform google-cloud-datastore

文档here表示我可以省略实体的数字ID,DataStore会自动分配一个。

然而,它没有说明如何检索自动生成的id。怎么得到它?

它是否在响应中可用,或者我是否必须对其他某些字段进行查询以再次检索实体,以便我可以看到它的ID?

2 个答案:

答案 0 :(得分:3)

它将在响应中的相应req = datastore.CommitRequest() req.mode = datastore.CommitRequest.NON_TRANSACTIONAL employee = req.mutation.insert_auto_id.add() # Request insertion with automatic ID allocation path_element = employee.key.path_element.add() path_element.kind = 'Employee' # ... set properties ... resp = self.datastore.commit(req) auto_id_key = resp.mutation_result.insert_auto_id_key[0] 中。这是一个扩展到here的Python代码段:

property

答案 1 :(得分:0)

Node 库中,生成的密钥通过symbol存储在查询的对象中。数据存储库在datastore.KEY上公开了此符号,您可以使用它来访问从数据存储中检索到的实体的ID /密钥:

// Pseudocode -- you have a handle on the entity from prior list / create operation:
const myEntity = datastore.queryOrListOrCreate();

// actual usage to update it:
const key = myEntity[datastore.KEY];

console.log(JSON.stringify(key));
// prints something like: {"id":"5664922973241322","kind":"myEntity","path":["myEntity","5664922973241322"]}

// use it to e.g. udpate the entity
await datastore.save({
  key,
  data: myEntity,
});

文档中没有对此进行解释,因此不确定是否已正式批准。