数据存储区最后一次使用Node插入id

时间:2017-10-03 00:32:56

标签: node.js google-app-engine datastore

如何使用节点获取数据存储中最后插入的实体ID?

Doc说插入如下:

datastore.insert(entity)
  .then(result) => {
    // Task inserted successfully.
  });

从这里,检查返回的result对象, 我找到的唯一方法是像这样穿过对象

result[0].mutationResults[0].key.path[0].id

这似乎很脆弱且不可靠。如果将来返回的对象的结构中断,应用程序会中断。

这是在节点中执行此操作的正确方法吗?

1 个答案:

答案 0 :(得分:1)

我相信我可能已回答了我自己的问题。

then回调中,我确实必须result[0].mutationResults[0].key.path[0].id

但是,我也可以定位实体,如此

const userEntity = {
  email: 'foo@foo.com',
  passwd: 'secret'
}

ds.insert(userEntity)
  .then(result) => {
    return userEntity.key.id
    // or, result[0].mutationResults[0].key.path[0].id
  }