1

Incidents彼と彼のネストされたevents順序付けられたDESCのリストと彼startedAttimestamp日付でクエリを作成する必要があります。デフォルトでは、ReQL は ASC 順で日付を指定します。私は次の構造を持っています: { "id": "87e14db8-1e15-4718-baac-f1c785e985cb" , "title": "Connection Error" "startedAt": Mon Oct 26 2015 14:33:00 GMT+00:00 , "events": [{ "message": "Cannot connect to theserver.com", "timestamp": Mon Oct 26 2015 14:33:00 GMT+00:00 },{ "message": "Cannot connect to theserver.com," "timestamp": Mon Oct 26 2015 14:33:20 GMT+00:00 },{ "message": "Cannot connect to theserver.com", "timestamp": Mon Oct 26 2015 14:33:40 GMT+00:00 }] },{ "id": "87e14db8-1e15-4718-baac-f1c785e985cb" , "title": "Other Connection Error" "startedAt": Mon Oct 26 2015 14:34:20 GMT+00:00 , "events": [{ "message": "Connection rejected", "timestamp": Mon Oct 26 2015 14:34:20 GMT+00:00 },{ "message": "Connection rejected", "timestamp": Mon Oct 26 2015 14:34:41 GMT+00:00 }] },{ ... (several more) }

を実行するr.db('mydb').table('Incident').orderBy(r.desc('createdAt'))と、インシデントの順序がcreatedAt順を追って表示されます。しかし、ネストされたeventsものはまだ ASC で注文されています。

ネストされたイベントをタイムスタンプで DESC 順で取得するクエリを作成するにはどうすればよいですか?

4

2 に答える 2

2

これがあなたが探しているものだと思います。メソッドに少し魔法をかけただけ.map(...)です。

r.db("test").table("stackoverflow").orderBy(r.desc('startedAt')).map(function(d){
  return {
    "startedAt":d("startedAt"),
    "title": d("title"),
    "id": d("id"),
    "events": d("events").orderBy(r.desc("timestamp"))
  }
})
于 2015-10-26T19:07:16.083 に答える
2

このような何かがそれを行う必要があります:

r.table('Incident').orderBy(r.desc('createdAt')).merge(function(row) {
  return {events: row('events').orderBy(r.desc('timestamp'))};
})
于 2015-10-26T18:48:54.607 に答える