Node.js Google数据存储查询NodeJS应用程序如何获取实体ID
我有一个使用Google数据存储的NodeJS应用程序。我设置了一个基本查询,它可以从数据库返回数据 问题:如何检索返回的每个实体的ID?我需要结果集中的ID,以便它可以在UI上显示给用户 这里是到目前为止的NodeJS查询。我能够获取整个密钥,但如何从查询结果中仅获取ID NodeJS:Node.js Google数据存储查询NodeJS应用程序如何获取实体ID,node.js,google-app-engine,Node.js,Google App Engine,我有一个使用Google数据存储的NodeJS应用程序。我设置了一个基本查询,它可以从数据库返回数据 问题:如何检索返回的每个实体的ID?我需要结果集中的ID,以便它可以在UI上显示给用户 这里是到目前为止的NodeJS查询。我能够获取整个密钥,但如何从查询结果中仅获取ID NodeJS: const treq_history = datastore.createQuery('TransferRequest'); //Set query conditions treq_history
const treq_history = datastore.createQuery('TransferRequest');
//Set query conditions
treq_history.filter('requester', 'test');
//Run datastore query
datastore.runQuery(treq_history, function(err, entities) {
if(err) {
console.log('Transfer Request History JSON unable to return data results for File Path. Error message: ', err);
return;
//If query works and returns any entities
} else if (entities[0]) {
//Access the Key object for an entity.
var firstEntityKey = entities[0][datastore.KEY];
console.log('Entity key: ', firstEntityKey);
console.log('Entity data: ' + JSON.stringify(entities[0]));
res.json(entities);
return;
} else {
//Else if query works but does not return any entities return an empty object in JSON response
res.json('{}');
return;
}
});
控制台输出:
Entity key Key {
namespace: undefined,
id: '5658319839738991',
kind: 'TransferRequest',
path: [Getter] }
Entity data: {"transfer_request_status":"Processing","created_datetime":1509395305624,"requester":"test","dataowner":"example"}
更新:
我可以使用密钥访问ID:
entities[0][datastore.KEY]['id']
不幸的是,我无法执行相同的操作:(
err=TypeError:Cannot read undefined
@cmag的属性'id',根据该错误消息,您尝试读取的实体似乎未定义。打印您尝试读取的实体的字符串表示形式,以确保它已定义。console.log('Entity data:'+JSON.stringify(entities[0]));当您确认已定义它时,请获取如下密钥entities[0][datastore.key]['id']。希望这对您有所帮助。