1

私は MongoDB から DynamoDB への移行の過程にあり、まだ解決策を見つけていない課題の 1 つは、フロートの挿入です。

私はこのようなことをしようとしています:

list($usec, $sec) = explode(" ", microtime()); 
$timestamp = (float)$usec + (float)$sec; //1379914632.0291
$array_to_insert = array('system_insert_time' => array('N' => $timestamp));

次のような例外が発生します。

Validation errors: [Item][system_insert_time][N] must be of type string

データベースのフィールドは数値として定義されます。整数を挿入しようとしてもうまくいきます。しかし、秒以上の精度が必要です。特定のタイムスタンプより大きいデータベース エントリを取得できるようにしたいため、文字列として挿入することはできません。

どんな助けでも大歓迎です!ありがとう。

4

2 に答える 2

0

あなたはすでに解決策を見つけたので、文字列への型キャストが別のものになることを追加したいだけです...

$array_to_insert = array('system_insert_time' => array('N' => (string)$timestamp));
#                                                             ^------^
于 2013-10-01T10:13:18.723 に答える
0

挿入する前にタイムスタンプに number_format() を使用するとうまくいくようです。

于 2013-09-24T05:32:25.897 に答える