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 回答