0

データストア内のモデル (種類) の複数のプロパティ (フィールド) に基づいて独自の一意のキーを作成する方法。

ここでは、名前、デバイス、ID、データの 4 つのフィールドがある状況です。今、私は自分の3つのフィールド、つまりname、device、idに基づいてキーを作成したいので、データが来るたびに、そのデータに対してキーがすでに存在する場合は、そのキーに対して置き換えられます。それ以外の場合、新しいキーを持つ新しいデータデータが挿入されます.このようにして、データベースヒットを保存できます(つまり、モデルのキーに対するデータが存在するかどうかを確認するために必要なヒットは必要ありません。すでに存在する場合はデータ自体を置き換えるだけです。それ以外の場合は新しいレコードを挿入します)
では、3 つのフィールドを使用してこのキーを作成するにはどうすればよいでしょうか。

4

2 に答える 2

1

明白なことを述べる危険を冒して、最も簡単な答えは、3 つのフィールドを連結する単一のキーを作成し、それらのいずれにも表示できない区切り文字を使用することです。たとえば、Javaでは、次のようなものがあります。

String delimiter = ":";
String key = name + delimiter + device + delimiter + id;
于 2012-12-01T01:17:19.900 に答える
0

これで動作しています。一意のキーを作成しました。この一意のキーを、Datastoreのunique(default)フィールドである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()

于 2012-12-12T06:19:40.857 に答える