mirror of https://gitee.com/bigwinds/arangodb
144 lines
5.3 KiB
Markdown
144 lines
5.3 KiB
Markdown
Arangoexport Examples
|
|
=====================
|
|
|
|
_arangoexport_ can be invoked by executing the following command in a command line:
|
|
|
|
arangoexport --collection test --output-directory "dump"
|
|
|
|
This exports the collections *test* into the directory *dump* as one big json array. Every entry
|
|
in this array is one document from the collection without a specific order. To export more than
|
|
one collection at a time specify multiple *--collection* options.
|
|
|
|
The default output directory is *export*.
|
|
|
|
_arangoexport_ will by default connect to the *_system* database using the default
|
|
endpoint. If you want to connect to a different database or a different endpoint,
|
|
or use authentication, you can use the following command-line options:
|
|
|
|
- *--server.database <string>*: name of the database to connect to
|
|
- *--server.endpoint <string>*: endpoint to connect to
|
|
- *--server.username <string>*: username
|
|
- *--server.password <string>*: password to use (omit this and you'll be prompted for the
|
|
password)
|
|
- *--server.authentication <bool>*: whether or not to use authentication
|
|
|
|
Here's an example of exporting data from a non-standard endpoint, using a dedicated
|
|
[database name](../../Appendix/Glossary.md#database-name):
|
|
|
|
arangoexport --server.endpoint tcp://192.168.173.13:8531 --server.username backup --server.database mydb --collection test --output-directory "my-export"
|
|
|
|
When finished, _arangoexport_ will print out a summary line with some aggregate
|
|
statistics about what it did, e.g.:
|
|
|
|
Processed 2 collection(s), wrote 9031763 Byte(s), 78 HTTP request(s)
|
|
|
|
|
|
Export JSON
|
|
-----------
|
|
|
|
arangoexport --type json --collection test
|
|
|
|
This exports the collection *test* into the output directory *export* as one json array.
|
|
Every array entry is one document from the collection *test*
|
|
|
|
Export JSONL
|
|
------------
|
|
|
|
arangoexport --type jsonl --collection test
|
|
|
|
This exports the collection *test* into the output directory *export* as [JSONL](http://jsonlines.org).
|
|
Every line in the export is one document from the collection *test* as JSON.
|
|
|
|
Export CSV
|
|
----------
|
|
|
|
arangoexport --type csv --collection test --fields _key,_id,_rev
|
|
|
|
This exports the collection *test* into the output directory *export* as CSV. The first
|
|
line contains the header with all field names. Each line is one document represented as
|
|
CSV and separated with a comma. Objects and arrays are represented as a JSON string.
|
|
|
|
|
|
Export XML
|
|
----------
|
|
|
|
arangoexport --type xml --collection test
|
|
|
|
This exports the collection *test* into the output directory *export* as generic XML.
|
|
The root element of the generated XML file is named *collection*.
|
|
Each document in the collection is exported in a *doc* XML attribute.
|
|
Each document attribute is exported as a generic *att* element, which has a
|
|
*name* attribute with the attribute name, a *type* attribute indicating the
|
|
attribute value type, and a *value* attribute containing the attribute's value.
|
|
|
|
Export XGMML
|
|
------------
|
|
|
|
[XGMML](https://en.wikipedia.org/wiki/XGMML) is an XML application
|
|
based on [GML](https://en.wikipedia.org/wiki/Graph_Modelling_Language).
|
|
To view the XGMML file you can use for example [Cytoscape](http://cytoscape.org).
|
|
|
|
|
|
{% hint 'warning' %}
|
|
If you export all attributes (*--xgmml-label-only false*) note that attribute types have to be the same for all documents. It wont work if you have an attribute named rank that is in one document a string and in another document an integer.
|
|
|
|
Bad
|
|
|
|
{ "rank": 1 } // doc1
|
|
{ "rank": "2" } // doc2
|
|
|
|
Good
|
|
|
|
{ "rank": 1 } // doc1
|
|
{ "rank": 2 } // doc2
|
|
|
|
{% endhint %}
|
|
|
|
**XGMML specific options**
|
|
|
|
*--xgmml-label-attribute* specify the name of the attribute that will become the label in the xgmml file.
|
|
|
|
*--xgmml-label-only* set to true will only export the label without any attributes in edges or nodes.
|
|
|
|
|
|
**Export based on collections**
|
|
|
|
arangoexport --type xgmml --graph-name mygraph --collection vertex --collection edge
|
|
|
|
This exports an unnamed graph with vertex collection *vertex* and edge collection *edge* into the xgmml file *mygraph.xgmml*.
|
|
|
|
|
|
**Export based on a named graph**
|
|
|
|
arangoexport --type xgmml --graph-name mygraph
|
|
|
|
This exports the named graph mygraph into the xgmml file *mygraph.xgmml*.
|
|
|
|
|
|
**Export XGMML without attributes**
|
|
|
|
arangoexport --type xgmml --graph-name mygraph --xgmml-label-only true
|
|
|
|
This exports the named graph mygraph into the xgmml file *mygraph.xgmml* without the *<att>* tag in nodes and edges.
|
|
|
|
|
|
**Export XGMML with a specific label**
|
|
|
|
arangoexport --type xgmml --graph-name mygraph --xgmml-label-attribute name
|
|
|
|
This exports the named graph mygraph into the xgmml file *mygraph.xgmml* with a label from documents attribute *name* instead of the default attribute *label*.
|
|
|
|
Export via AQL query
|
|
--------------------
|
|
|
|
arangoexport --type jsonl --query "FOR book IN books FILTER book.sells > 100 RETURN book"
|
|
|
|
Export via an AQL query allows you to export the returned data as the type specified with *--type*.
|
|
The example exports all books as JSONL that are sold more than 100 times.
|
|
|
|
arangoexport --type csv --fields title,category1,category2 --query "FOR book IN books RETURN { title: book.title, category1: book.categories[0], category2: book.categories[1] }"
|
|
|
|
A *fields* list is required for CSV exports, but you can use an AQL query to produce
|
|
these fields. For example, you can de-normalize document structures like arrays and
|
|
nested objects to a tabular form as demonstrated above.
|