0

ファイルから Rethinkdb にデータをインポートしています。

データは次のようになります (これは偽のデータです)

[
  {
    "firstName": "Keeley",
    "lastName": "Leannon",
    "createdAt": "2016-05-10T19:55:38.823Z",
    "location": {
      "lat": 52,
      "lng": 0.07687,
      "lastUpdated": "2016-05-16T03:21:25.082Z"
    },
    "company": "Breitenberg and Sons",
    "jobTitle": "Dynamic Group Facilitator",
    "email": "Keeley.Leannon@derrick.com"
  },
  {
    "firstName": "Henri",
    "lastName": "Ernser",
    "createdAt": "2016-05-21T11:51:54.581Z",
    "location": {
      "lat": 52,
      "lng": -0.74853,
      "lastUpdated": "2016-04-28T21:15:26.786Z"
    },
    "company": "Gleason, Dickens and Cassin",
    "jobTitle": "Lead Data Consultant",
    "email": "Henri.Ernser@ila.org"
  }
]

ここでpoint、location.lng および location.lat フィールドからオブジェクトを作成し、lat フィールドと lng フィールドを削除したいので、location フィールドは次のようになります。

 "location": {
          "point": -0.74853, 52,
          "lastUpdated": "2016-04-28T21:15:26.786Z"
        },

私はファイルからインポートしていますが、ドキュメントでわかる限り、ReQL を使用してファイルから直接インポートする方法はないため、コマンド ラインからインポートを行い、その後各ドキュメントを変更する必要があります。インポート。

上記を行う方法についての指針はありますか?

4

1 に答える 1

0

このコマンドは、必要なものに十分近いです

r.db('test').table('people').update(function(item) {
  return {
    location: {
      geometry : r.point(
      item("location")("lng"),
      item("location")("lat")),
      lastUpdated : item("location")("lastUpdated"),
      lat: r.literal(),
      lng: r.literal()
    }
  }

}))

その結果、次のような場所オブジェクトが生成されます

    "location": {
        "geometry": {
            "$reql_type$":  "GEOMETRY" ,
             "coordinates": [-0.94645 ,51] ,
             "type":  "Point"
         } ,
         "lastUpdated":  "2016-05-04T01:38:48.786Z"
     }
于 2016-05-31T13:29:14.560 に答える