如何基于多个属性在数据存储区中创建密钥

时间:2012-11-29 15:00:52

标签: google-app-engine google-cloud-datastore gqlquery

如何根据数据存储区中模型(种类)的多个peoperties(字段)创建自己的唯一键。

这里是我有4个字段名称,设备,ID,数据的情况。现在我想根据我的3个字段(即名称,设备,id)创建一个密钥,这样每当数据到来时,如果密钥已经存在,那么它将被替换为该密钥,否则将插入带有新密钥的新数据数据。这样我就可以保存数据库命中(即我不需要检查是否存在针对模型中的密钥的数据所需的命中,如果已经存在,则只会替换数据本身插入新的记录)
 那么如何使用我的3个字段制作这个密钥。

2 个答案:

答案 0 :(得分:1)

冒着说明显而易见的风险,最简单的答案就是制作一个连接三个字段的单个键,其中一个分隔符不能出现在任何字段中。例如,在Java中,有以下几点:

String delimiter = ":";
String key = name + delimiter + device + delimiter + id;

答案 1 :(得分:0)

它正在工作我已经创建了一个唯一的密钥,现在我将这个uniqe密钥传递给key_name,这是数据存储区中的唯一(默认)字段。

key_name_ = game_code+game_version+device_type+device_id

EventLogModel( **key_name** = key_name_, game_code = game_code, game_version = game_version, device_type = device_type , device_id = device_id , events=events ).put()