2015-12-03 9 views
7

私はRethinkDBを使い始めています。実行中のクエリで何が起こっているのか理解できていません。グループオペレータを使用している場合、ISO8601ではなく時間擬似型

問題は、JSONのAPIを公開(rethinkdbdashドライバを使用)NodeJSアプリから日付時刻タイプのオブジェクトを照会します。私は個別に私のオブジェクトを照会した場合のように:私は(日付時刻偽を取得

db.table('apples').group('type').max('timestamp'); 

:で、私は次のようにクエリで、オペレータによりグループを実行する場合ながら

db.table('apples').max('timestamp'); 

私は、JavaScriptがタイムスタンプフィールドの日付を取得私はこれが正しい名前だと思う)代わりに同じタイムスタンプフィールド。次のようなものがあります。

{ 
    "$reql_type$": "TIME", 
    "epoch_time": 1423077646.772, 
    "timezone": "-07:00" 
} 

これは予期された動作ですか?その背後にある論理は何ですか?

私はJSONでシリアル化されたiso8601の日付を返したいと思います。このデータ型ではなく、クライアントに透過的な解析を行います。

おかげで、


UPDATE これは、2.2.7より前のバージョンの既知の問題でした。 Fixed here

答えて

2

これはrethinkdbdashのバグのようです。サーバは常に疑似型($reql_type$フィールドのオブジェクト)としてクライアントに時刻を送信し、クライアントは疑似型をネイティブ時刻オブジェクトに変換する責任があります(異なる言語のドライバでは別々に行う必要があるため)。私はhttps://github.com/neumino/rethinkdbdash/issuesでバグを開くと思います。

groupGROUPED_DATA擬似型を返し、他の擬似型の内部にある擬似型を正しく変換していないことがバグの原因であると推測します。あなたがdb.table('apples').group('type').max('timestamp').ungroup()を実行する場合、ドライバにパ​​ッチが適用されるまで、それはこのクエリの問題を解決することがあります。

+1

@mlucyにお返事いただきありがとうございます。グループ解除を行うと、この特定のケースで実際に問題が解決されます。私はrethinkdbdashの人々にそれをもたらすでしょう。再度、感謝します。 – Marc

関連する問題