CouchDB Reader/Writer
Licensing options for this format begin with FME Desktop Professional Edition.
The CouchDB reader allows FME to read spatial data from CouchDB databases.
Overview
CouchDB is a web-based document database system whose data is stored as JSON documents. The CouchDB reader can consume generic JSON documents as features and will interpret their properties as FME attributes. To interpret data spatially, the JSON documents should follow the GeoJSON specification.
For more details on the GeoJSON specification see the documentation for the GeoJSON reader/writer.
CouchDB features can represent geometries consisting of points, lines, polygons and collections thereof. Smooth geometry features such as ellipses or arcs are not supported. CouchDB geometries are also coordinate system aware, the coordinate system of the feature types defines how to interpret the coordinates of all features under the feature type.
The CouchDB reader can access both public and private documents on a CouchDB server given a user’s credentials. The reader has been tested with CouchDB version 1.9.0 only.
Reader Overview
The CouchDB takes the root of a CouchDB server to be a CouchDB dataset, however the dataset can be further scoped to a specific table, in which case the dataset will only have access to the single specified table. For example:
http://<host>:<port>/<root>[/<tablename>]
CouchDB Attribute Type | FME Attribute Type |
---|---|
string(width) | fme_varchar(width) |
string(width) | fme_char(width) |
string(255) | fme_buffer |
string(1) | fme_char |
real(width, decimal) | fme_decimal(width, decimal) |
string(24) | fme_datetime |
string(8) | fme_date |
string(10) | fme_time |
integer | fme_int32 |
real(10,0) | fme_uint32 |
real(20,0) | fme_int64 |
real(20,0) | fme_uint64 |
integer | fme_int16 |
integer | fme_uint16 |
integer | fme_uint8 |
real(15,7) | fme_real32 |
real(31,15) | fme_real64 |
integer | fme_boolean |
Writer Overview
The CouchDB writer takes the root of a CouchDB server to be a CouchDB dataset; however, the dataset can be further scoped to a specific table, in which case the dataset will only have access to the single specified table. For example,
http://<host>:<port>/<root>[/<tablename>]