npm package: @gdnsl/plugin-db
Description: gdnsl plugin for database commands
Author: Abhishek Lohani
Latest version: 0.0.55

@gdnsl/plugin-db
=================

gdnsl plugin for database commands

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->
# Usage
<!-- usage -->
```sh-session
$ npm install -g @gdnsl/plugin-db
$ @gdnsl/plugin-db COMMAND
running command...
$ @gdnsl/plugin-db (--version)
@gdnsl/plugin-db/0.0.55 darwin-x64 node-v14.20.0
$ @gdnsl/plugin-db --help [COMMAND]
USAGE
  $ @gdnsl/plugin-db COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`@gdnsl/plugin-db collection create NAME`](#gdnslplugin-db-collection-create-name)
* [`@gdnsl/plugin-db collection delete NAME`](#gdnslplugin-db-collection-delete-name)
* [`@gdnsl/plugin-db collection describe NAME`](#gdnslplugin-db-collection-describe-name)
* [`@gdnsl/plugin-db collection list`](#gdnslplugin-db-collection-list)
* [`@gdnsl/plugin-db collection update NAME`](#gdnslplugin-db-collection-update-name)
* [`@gdnsl/plugin-db document create`](#gdnslplugin-db-document-create)
* [`@gdnsl/plugin-db document delete KEYS`](#gdnslplugin-db-document-delete-keys)
* [`@gdnsl/plugin-db document describe KEY`](#gdnslplugin-db-document-describe-key)
* [`@gdnsl/plugin-db document update`](#gdnslplugin-db-document-update)
* [`@gdnsl/plugin-db export`](#gdnslplugin-db-export)
* [`@gdnsl/plugin-db fabric create NAME`](#gdnslplugin-db-fabric-create-name)
* [`@gdnsl/plugin-db fabric delete NAME`](#gdnslplugin-db-fabric-delete-name)
* [`@gdnsl/plugin-db fabric describe FABRIC`](#gdnslplugin-db-fabric-describe-fabric)
* [`@gdnsl/plugin-db fabric list`](#gdnslplugin-db-fabric-list)
* [`@gdnsl/plugin-db fabric update FABRIC`](#gdnslplugin-db-fabric-update-fabric)
* [`@gdnsl/plugin-db graph create NAME`](#gdnslplugin-db-graph-create-name)
* [`@gdnsl/plugin-db graph delete NAME`](#gdnslplugin-db-graph-delete-name)
* [`@gdnsl/plugin-db graph describe NAME`](#gdnslplugin-db-graph-describe-name)
* [`@gdnsl/plugin-db graph edge create NAME`](#gdnslplugin-db-graph-edge-create-name)
* [`@gdnsl/plugin-db graph edge delete NAME`](#gdnslplugin-db-graph-edge-delete-name)
* [`@gdnsl/plugin-db graph edge describe NAME`](#gdnslplugin-db-graph-edge-describe-name)
* [`@gdnsl/plugin-db graph edge list`](#gdnslplugin-db-graph-edge-list)
* [`@gdnsl/plugin-db graph edge replace NAME`](#gdnslplugin-db-graph-edge-replace-name)
* [`@gdnsl/plugin-db graph edge update NAME`](#gdnslplugin-db-graph-edge-update-name)
* [`@gdnsl/plugin-db graph list`](#gdnslplugin-db-graph-list)
* [`@gdnsl/plugin-db graph update GRAPHNAME`](#gdnslplugin-db-graph-update-graphname)
* [`@gdnsl/plugin-db graph vertex create NAME`](#gdnslplugin-db-graph-vertex-create-name)
* [`@gdnsl/plugin-db graph vertex delete NAME`](#gdnslplugin-db-graph-vertex-delete-name)
* [`@gdnsl/plugin-db graph vertex describe NAME`](#gdnslplugin-db-graph-vertex-describe-name)
* [`@gdnsl/plugin-db graph vertex replace NAME`](#gdnslplugin-db-graph-vertex-replace-name)
* [`@gdnsl/plugin-db graph vertex update NAME`](#gdnslplugin-db-graph-vertex-update-name)
* [`@gdnsl/plugin-db help [COMMAND]`](#gdnslplugin-db-help-command)
* [`@gdnsl/plugin-db import COLLECTION`](#gdnslplugin-db-import-collection)
* [`@gdnsl/plugin-db index create NAME`](#gdnslplugin-db-index-create-name)
* [`@gdnsl/plugin-db index delete NAME INDEX-NAME`](#gdnslplugin-db-index-delete-name-index-name)
* [`@gdnsl/plugin-db index describe NAME INDEX-NAME`](#gdnslplugin-db-index-describe-name-index-name)
* [`@gdnsl/plugin-db index list NAME`](#gdnslplugin-db-index-list-name)
* [`@gdnsl/plugin-db kv create NAME`](#gdnslplugin-db-kv-create-name)
* [`@gdnsl/plugin-db kv delete NAME`](#gdnslplugin-db-kv-delete-name)
* [`@gdnsl/plugin-db kv get NAME`](#gdnslplugin-db-kv-get-name)
* [`@gdnsl/plugin-db kv list`](#gdnslplugin-db-kv-list)
* [`@gdnsl/plugin-db kv set NAME`](#gdnslplugin-db-kv-set-name)
* [`@gdnsl/plugin-db kv update NAME`](#gdnslplugin-db-kv-update-name)
* [`@gdnsl/plugin-db query [QUERY]`](#gdnslplugin-db-query-query)
* [`@gdnsl/plugin-db query-worker create [QUERYWORKERNAME]`](#gdnslplugin-db-query-worker-create-queryworkername)
* [`@gdnsl/plugin-db query-worker delete QUERYWORKERNAME`](#gdnslplugin-db-query-worker-delete-queryworkername)
* [`@gdnsl/plugin-db query-worker describe QUERYWORKERNAME`](#gdnslplugin-db-query-worker-describe-queryworkername)
* [`@gdnsl/plugin-db query-worker list`](#gdnslplugin-db-query-worker-list)
* [`@gdnsl/plugin-db query-worker next CURSORID`](#gdnslplugin-db-query-worker-next-cursorid)
* [`@gdnsl/plugin-db query-worker run [QUERYWORKERNAME]`](#gdnslplugin-db-query-worker-run-queryworkername)
* [`@gdnsl/plugin-db query-worker update [QUERYWORKERNAME]`](#gdnslplugin-db-query-worker-update-queryworkername)
* [`@gdnsl/plugin-db query delete CURSOR`](#gdnslplugin-db-query-delete-cursor)
* [`@gdnsl/plugin-db query next CURSOR`](#gdnslplugin-db-query-next-cursor)
* [`@gdnsl/plugin-db search SEARCHSTRING`](#gdnslplugin-db-search-searchstring)
* [`@gdnsl/plugin-db search analyzer [ANALYZERNAME]`](#gdnslplugin-db-search-analyzer-analyzername)
* [`@gdnsl/plugin-db view create VIEWNAME`](#gdnslplugin-db-view-create-viewname)
* [`@gdnsl/plugin-db view delete VIEWNAME`](#gdnslplugin-db-view-delete-viewname)
* [`@gdnsl/plugin-db view describe VIEWNAME`](#gdnslplugin-db-view-describe-viewname)
* [`@gdnsl/plugin-db view list`](#gdnslplugin-db-view-list)
* [`@gdnsl/plugin-db view rename VIEWNAME NEWNAME`](#gdnslplugin-db-view-rename-viewname-newname)
* [`@gdnsl/plugin-db view update VIEWNAME`](#gdnslplugin-db-view-update-viewname)

## `@gdnsl/plugin-db collection create NAME`

Create a document or edge collection.

```
USAGE
  $ @gdnsl/plugin-db collection create [NAME] [-h] [-c <value>] [--fabric <value>] [--type doc|edge] [--stream]
    [--local] [--userkeys --keygen traditional|autoincrement|uuid|padded] [--keyincrement <value> ] [--keyoffset <value>
    ] [--system]

FLAGS
  -c, --config=<value>
      gdnsl config file (default is ./gdnsl.yaml).

  -h, --help
      Help to create document or edge collection.

  --fabric=<value>
      Name of the fabric. Default will be "_system".

  --keygen=<option>
      The keygenerator to use by GDN. Values - traditional, autoincrement, uuid and padded. traditional - This key
      generator generates numerical keys in ascending order. autoincrement- This key generator generates numerical keys in
      ascending order, the initial offset and the spacing can be configured. uuid - This key generator generates
      universally unique 128 bit keys, which are stored in hexadecimal human-readable format. The keys are not
      lexicographically sorted. padded - This key generator generates keys of a fixed length (16 bytes) in ascending
      lexicographical sort order.
      <options: traditional|autoincrement|uuid|padded>

  --keyincrement=<value>
      Increment value for autoincrement key generator. Not used for other key generator types.

  --keyoffset=<value>
      Initial offset value for autoincrement key generator. Not used for other key generator types.

  --local
      Specifies whether it is a local collection.

  --stream
      Enable stream on the collection. Default is false.

  --system
      Specifies whether it is a system collection. Only mm admins can create system collections.

  --type=<option>
      [default: doc] Specifies type of the collection. Values - "doc" or "edge". Default - "doc"
      <options: doc|edge>

  --userkeys
      Allow users to specify their own keys.

DESCRIPTION
  Create a document or edge collection.

EXAMPLES
  
  # Create a global cities document collection.
  gdnsl collection create cities --type doc 
 
  # Create a global cities edge collection.
  gdnsl collection create cities --type edge 
 
  # Create a global cities document collection and enable collection stream.
  gdnsl collection create cities --type doc --stream 
 
  # Create a local cities document collection and enable collection stream.
  gdnsl collection create cities --type doc --stream --local 
 
  # Create a global cities document collection with custom key generator.
  gdnsl collection create cities --type doc --keygen traditional --userkeys
```

## `@gdnsl/plugin-db collection delete NAME`

Delete a document or edge collection.

```
USAGE
  $ @gdnsl/plugin-db collection delete [NAME] [-h] [-c <value>] [--fabric <value>] [--truncate] [--system]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete a document or edge collection.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --system              Specifies whether it is a system collection. Only mm admins can create system collections.
  --truncate            Delete all entries from KV collection.

DESCRIPTION
  Delete a document or edge collection.

EXAMPLES
  
  # Delete a cities document collection.
  gdnsl collection delete cities
 
  # Delete a cities edge collection.
  gdnsl collection delete cities
 
  # Delete a cities edge collection which is a system collection.
  gdnsl collection delete _cities --system 
 
  # Remove all documents from cities collection but leave the indexes intact.
  gdnsl collection delete cities --truncate
```

## `@gdnsl/plugin-db collection describe NAME`

Get details of a collection.

```
USAGE
  $ @gdnsl/plugin-db collection describe [NAME] [-h] [-c <value>] [--fabric <value>] [--count]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to get details of a collection.
  --count               To return number of documents in the collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".

DESCRIPTION
  Get details of a collection.

EXAMPLES
  
  # Get details of cities collection.
  gdnsl collection describe cities
 
  # Count documents in cities collection.
  gdnsl collection describe cities --count
```

## `@gdnsl/plugin-db collection list`

List collections.

```
USAGE
  $ @gdnsl/plugin-db collection list [-h] [-c <value>] [--fabric <value>] [--system] [-o json]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to list collections.
  -o, --output=(json)   Output format. Only json is allowed.
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --system              Specifies whether it is a system collection. Only mm admins can create system collections.

DESCRIPTION
  List collections.

EXAMPLES
  
  # List all collections except system collections.
  gdnsl collection list
```

## `@gdnsl/plugin-db collection update NAME`

Enable stream on collection.

```
USAGE
  $ @gdnsl/plugin-db collection update [NAME] [-h] [-c <value>] [--fabric <value>] [--stream] [--wait-for-sync]

ARGUMENTS
  NAME  Name of the collection

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to enable stream on collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --[no-]stream         Enable / Disable collection stream.
  --[no-]wait-for-sync  Creating or changing a document will wait until the data has been synchronized to disk.

DESCRIPTION
  Enable stream on collection.

EXAMPLES
  
  # Enable stream on collection cities.
  gdnsl collection update cities --stream 
  # Disable stream on collection cities.
  gdnsl collection update cities --no-stream
  # Enable waitForSync on collection cities.
  gdnsl collection update cities --wait-for-sync 
  # Disable waitForSync on collection cities.
  gdnsl collection update cities --no-wait-for-sync
  # Enable stream and waitForSync on collection cities.
  gdnsl collection update cities --stream --wait-for-sync 
  # Disable stream and waitForSync on collection cities.
  gdnsl collection update cities --no-stream --no-wait-for-sync
```

## `@gdnsl/plugin-db document create`

Create a document.

```
USAGE
  $ @gdnsl/plugin-db document create --collection <value> --json <value> [-h] [-c <value>] [--fabric <value>]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to create a document.
  --collection=<value>  (required) The name of the collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --json=<value>...     (required) A json document to insert.

DESCRIPTION
  Create a document.

EXAMPLES
  
  # Create a document in cities collection.
  gdnsl document create --json '{"name": "Julia"}' --json '{"name": "John"}' --collection "cities"
```

## `@gdnsl/plugin-db document delete KEYS`

Delete a document.

```
USAGE
  $ @gdnsl/plugin-db document delete [KEYS] --collection <value> [-h] [-c <value>] [--fabric <value>]

ARGUMENTS
  KEYS  The key of the document.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete a document.
  --collection=<value>  (required) The name of the collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".

DESCRIPTION
  Delete a document.

EXAMPLES
  
  # Delete a document.
  gdnsl document delete 5326955 --collection cities
 
  # Delete all the specified documents.
  gdnsl document delete "5327664, 5327665" --collection cities
```

## `@gdnsl/plugin-db document describe KEY`

Describe a document.

```
USAGE
  $ @gdnsl/plugin-db document describe [KEY] --collection <value> [-h] [-c <value>] [--fabric <value>]

ARGUMENTS
  KEY  The key of the document.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to describe a document.
  --collection=<value>  (required) The name of the collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".

DESCRIPTION
  Describe a document.

EXAMPLES
  
  # Describe a document.
  gdnsl document describe 5326955 --fabric _system --collection col1
```

## `@gdnsl/plugin-db document update`

Update a document.

```
USAGE
  $ @gdnsl/plugin-db document update --collection <value> --json <value> [-h] [-c <value>] [--fabric <value>]
    [--replace]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to update a document.
  --collection=<value>  (required) The name of the collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --json=<value>...     (required) The JSON document to update.
  --replace             Update the existing data.

DESCRIPTION
  Update a document.

EXAMPLES
  
  # Update a document.
  gdnsl document update --json '{"_key":"5685501", "name": "John"}' --collection cities
 
  # Update multiple documents.
  gdnsl document update --json '{"_key":"5685501", "name": "John"}' --json '{"_key":"5377789", "name": "Julia"}' --collection cities
 
  # Replace a document.
  gdnsl document update --replace --json '{"_key":"5685501", "name": "John"}' --collection cities
 
  # Replace multiple documents.
  gdnsl document update --replace --json '{"_key":"5685501", "name": "John"}' --json '{"_key":"5377789", "name": "Julia"}' --collection cities
```

## `@gdnsl/plugin-db export`

Export data.

```
USAGE
  $ @gdnsl/plugin-db export [-h] [-c <value>] [--fabric <value>] [--param <value> [--query <value> |
    --collection <value> | --offset <value> | --limit <value> | --order asc|desc]] [--csv | --file <value>]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help for export command.
  --collection=<value>  Collection name to export data from.
  --csv                 To export in CSV format. Default is JSON.
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --file=<value>        path to JSON or CSV file. File format is inferred from the file extension. Note: Only json and
                        csv extensions are allowed.
  --limit=<value>       This option can be used to simulate paging. Limit the result. Max: 1000
  --offset=<value>      This option can be used to simulate paging. Default: 0.
  --order=<option>      Order the results asc or desc. Default: asc.
                        <options: asc|desc>
  --param=<value>...    Param to be given to the query. Can be given multiple times.
  --query=<value>       Query string to execute and export data

DESCRIPTION
  Export data.

EXAMPLES
  # Export data returned by the query.
  gdnsl export --query "FOR doc IN addresses RETURN doc"
 
  # Export data returned by the query with based on the given filter.
  gdnsl export --query "FOR doc IN addresses FILTER doc.country == @country RETURN doc" --param "country=USA"
 
  # Export data returned by the query in CSV format.
  gdnsl export --query "FOR doc IN addresses RETURN doc" --csv
 
  # Export data returned by the query in JSON format to a file.
  gdnsl export --query "FOR doc IN addresses RETURN doc" --file test.json
 
  # Export data from "addresses" collection.
  gdnsl export --collection addresses
 
  # Export data from "addresses" collection with offset as 10.
  gdnsl export --collection addresses --offset 10
 
  # Export data from "addresses" collection with limit as 10.
  gdnsl export --collection addresses --limit 10
 
  # Export data from "addresses" collection in descending order.
  gdnsl export --collection addresses --order desc
 
  # Export data from "addresses" collection in CSV format.
  gdnsl export --collection addresses --csv
 
  # Export data from "addresses" collection in CSV format. File format is inferred from the file name.
  gdnsl export --collection addresses --file test.csv
```

_See code: [dist/commands/export.ts](https://github.com/Macrometacorp/gdnsl/blob/v0.0.55/dist/commands/export.ts)_

## `@gdnsl/plugin-db fabric create NAME`

Create a new fabric.

```
USAGE
  $ @gdnsl/plugin-db fabric create [NAME] --datacenter <value> [-h] [-c <value>] [--spot-datacenter <value>]
    [--user <value>] [--metadata <value>]

ARGUMENTS
  NAME  Fabric name

FLAGS
  -c, --config=<value>          gdnsl config file (default is ./gdnsl.yaml).
  -h, --help                    Help to create a fabric.
  --datacenter=<value>...       (required) Name of a Edge Location (datacenter). ie, Edge Location URL prefixes up to
                                the first "." character.
  --metadata=<value>...         An optional JSON object with user defined key-value pairs.
  --spot-datacenter=<value>...  The Edge Location (Datacenter) where on-spot operations for the given fabric will be
                                performed.
  --user=<value>...             Username that will have admin access to the new fabric.

DESCRIPTION
  Create a new fabric.

EXAMPLES
  
  # Create demo fabric in the prashant-ap-west data-center.
  gdnsl fabric create demo --datacenter "prashant-ap-west" --datacenter "prashant-eu-central"
 
  # Create demo fabric in the data-center with metadata.
  gdnsl fabric create demo --datacenter "prashant-ap-west" --datacenter "prashant-eu-central" --metadata "key=value"
 
  # Create demo fabric in the data-center with spot-datacenter.
  gdnsl fabric create demo --datacenter "prashant-ap-west" --datacenter "prashant-eu-central" --spot-datacenter prashant-us-east
 
  # Create demo fabric in the data-center with a user.
  gdnsl fabric create demo --datacenter "prashant-ap-west" --datacenter "prashant-eu-central" --user admin
 
  # Create demo fabric with 2 metadata objects.
  gdnsl fabric create demo --datacenter "prashant-ap-west" --datacenter "prashant-eu-central" --metadata "key1=value1" --metadata "key2=value2"
```

## `@gdnsl/plugin-db fabric delete NAME`

Delete a fabric.

```
USAGE
  $ @gdnsl/plugin-db fabric delete [NAME] [-h] [-c <value>]

ARGUMENTS
  NAME  Fabric name.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete a fabric.

DESCRIPTION
  Delete a fabric.

EXAMPLES
 
  # Delete demo fabric.
  gdnsl fabric delete demo
```

## `@gdnsl/plugin-db fabric describe FABRIC`

Get details of a fabric.

```
USAGE
  $ @gdnsl/plugin-db fabric describe [FABRIC] [-h] [-c <value>]

ARGUMENTS
  FABRIC  Fabric name.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to get details of a fabric.

DESCRIPTION
  Get details of a fabric.

EXAMPLES
  # Describe demo fabric
  gdnsl fabric describe demo
```

## `@gdnsl/plugin-db fabric list`

Retrieve the list of all existing fabrics.

```
USAGE
  $ @gdnsl/plugin-db fabric list [-h] [-c <value>] [--all] [-o json]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to list all fabrics.
  -o, --output=(json)   Output format. Only json is allowed.
  --all                 List of all fabrics.

DESCRIPTION
  Retrieve the list of all existing fabrics.

EXAMPLES
  
  # List fabrics from the server and returns an array of their names.
  gdnsl fabric list
 
  # List all fabrics accessible to the active user from the server and returns an array of their names.
  gdnsl fabric list --all
```

## `@gdnsl/plugin-db fabric update FABRIC`

Update a fabric.

```
USAGE
  $ @gdnsl/plugin-db fabric update [FABRIC] [-h] [-c <value>] [--metadata <value>]

ARGUMENTS
  FABRIC  Fabric name.

FLAGS
  -c, --config=<value>   gdnsl config file (default is ./gdnsl.yaml).
  -h, --help             Help to update a fabric.
  --metadata=<value>...  An optional JSON object with user defined key-value pairs.

DESCRIPTION
  Update a fabric.

EXAMPLES
  # Update demo fabric metadata with 2 metadata objects.
  gdnsl fabric update demo --metadata "key1=test1" --metadata "key2=test2"
```

## `@gdnsl/plugin-db graph create NAME`

Create a graph.

```
USAGE
  $ @gdnsl/plugin-db graph create [NAME] [-h] [-c <value>] [--fabric <value>] [--edge-definition <value>]
    [--option <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>
      gdnsl config file (default is ./gdnsl.yaml).

  -h, --help
      Help to create a graph.

  --edge-definition=<value>...
      Specify the edge definition of the graph. This edge definition has to contain a collection and an array of each from
      and to vertex collections. An edge definition can only be added if this definition is either not used in any other
      graph, or it is used with exactly the same definition. It is not possible to store a definition "e" from "v1" to
      "v2" in the one graph, and "e" from "v2" to "v1" in the other graph. Can be given multiple times.

  --fabric=<value>
      Name of the fabric. Default will be "_system".

  --option=<value>
      Specify any additional options to be given. Can be given multiple times.

DESCRIPTION
  Create a graph.

EXAMPLES
  
  # Create a graph "social".
  gdnsl graph create social
  # The edge-definition format is "EDGE_COLLECTION:FROM_VERTICES:TO_VERTICES". Create a graph "social" with edge collection "relation", "from" vertex as "female" & "male" and "to" vertex as "female" & "male".
  gdnsl graph create social --edge-definition "relation:female,male:female,male"
  # The edge-definition format is "EDGE_COLLECTION:FROM_VERTICES:TO_VERTICES". Create a graph "social" with edge collection "relation", "from" vertex as "female" & "male" and "to" vertex as "female" & "male" with additional options specified.
  gdnsl graph create social --edge-definition "relation:female,male:female,male" --option "key=value"
```

## `@gdnsl/plugin-db graph delete NAME`

Delete a graph.

```
USAGE
  $ @gdnsl/plugin-db graph delete [NAME] [-h] [-c <value>] [--fabric <value>] [--drop-collections]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete a graph
  --drop-collections    Drop the collection as well. Collection will only be dropped if it is not used in other graphs.
                        Default is false.
  --fabric=<value>      Name of the fabric. Default will be "_system"

DESCRIPTION
  Delete a graph.

EXAMPLES
  
  # Drop the graph "social".
  gdnsl graph delete social
  # Drop the graph "social" and any collections if they are not used in other graphs.
  gdnsl graph delete social --drop-collections
```

## `@gdnsl/plugin-db graph describe NAME`

Describe a graph.

```
USAGE
  $ @gdnsl/plugin-db graph describe [NAME] [-h] [-c <value>] [--fabric <value>] [--edge-definitions] [--vertex]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to describe a graph
  --edge-definitions    Get all the edge definitions of a graph.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --vertex              Get all the vertex collections of a graph.

DESCRIPTION
  Describe a graph.

EXAMPLES
  
  # Describe the graph "social".
  gdnsl graph describe social
  # Describe all edge definitions of the graph "social".
  gdnsl graph describe social --edge-definitions
  # Describe all vertex collections of the graph "social".
  gdnsl graph describe social --vertex
```

## `@gdnsl/plugin-db graph edge create NAME`

Create an edge.

```
USAGE
  $ @gdnsl/plugin-db graph edge create [NAME] --from <value> --to <value> --collection <value> [-h] [-c <value>]
    [--fabric <value>] [--return-new]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to create an edge
  --collection=<value>  (required) The name of the edge collection the edge belongs to.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --from=<value>        (required) The source vertex of this edge. Has to be valid within the used edge definition.
  --return-new          Define if the response should contain the complete new version of the document.
  --to=<value>          (required) The target vertex of this edge. Has to be valid within the used edge definition.

DESCRIPTION
  Create an edge.

EXAMPLES
  
  # Create an edge in the "social" graph in "relation" edge-collection from "male/John" to "female/Doe".
  gdnsl graph edge create social --collection relation --from "male/John" --to "female/Doe"
 
  # Create an edge in the "social" graph in "relation" edge-collection from "male/John" to "female/Doe" and return the new version of the document.
  gdnsl graph edge create social --collection relation --from "male/John" --to "female/Doe" --return-new
```

## `@gdnsl/plugin-db graph edge delete NAME`

Remove an edge from the collection.

```
USAGE
  $ @gdnsl/plugin-db graph edge delete [NAME] --collection <value> --edge <value> [-h] [-c <value>] [--fabric <value>]
    [--return-old] [--if-match <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete an edge.
  --collection=<value>  (required) The name of the edge collection the edge belongs to.
  --edge=<value>        (required) The _key attribute of the edge.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --if-match=<value>    If the "If-Match" header is given, then it must contain exactly one Etag. The document is
                        updated, if it has the same revision as the given Etag. Otherwise a HTTP 412 is returned
  --return-old          Define if a presentation of the deleted document should be returned within the response object.
                        Default is false

DESCRIPTION
  Remove an edge from the collection.

EXAMPLES
  
  # delete an edge in the "social" graph in "relation" edge-collection having edge _id attribute as "MwPFf8dgSH-bxeNxuPh6bw".
  gdnsl graph edge delete social --collection relation --edge "MwPFf8dgSH-bxeNxuPh6bw"
 
  # delete an edge in the "social" graph in "relation" edge-collection _id attribute as "MwPFf8dgSH-bxeNxuPh6bw" and return the new version of the document.
  gdnsl graph edge delete social --collection relation --edge "MwPFf8dgSH-bxeNxuPh6bw"
```

## `@gdnsl/plugin-db graph edge describe NAME`

Describe an edge.

```
USAGE
  $ @gdnsl/plugin-db graph edge describe [NAME] --collection <value> --edge <value> [-h] [-c <value>] [--fabric <value>]
    [--rev <value>] [--if-match <value>] [--if-none-match <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>     gdnsl config file (default is ./gdnsl.yaml).
  -h, --help               Help to describe a graph
  --collection=<value>     (required) he name of the vertex collection the vertex belongs to.
  --edge=<value>           (required) The _key attribute of the edge.
  --fabric=<value>         Name of the fabric. Default will be "_system"
  --if-match=<value>       If the "If-Match" header is given, then it must contain exactly one Etag. The document is
                           returned, if it has the same revision as the given Etag. Otherwise a HTTP 412 is returned. As
                           an alternative you can supply the Etag in an query parameter rev.
  --if-none-match=<value>  If the "If-None-Match" header is given, then it must contain exactly one Etag. The document
                           is returned, only if it has a different revision as the given Etag. Otherwise a HTTP 304 is
                           returned.
  --rev=<value>            Must contain a revision. If this is set a document is only returned if it has exactly this
                           revision. Also see if-match header as an alternative to this. Default is false.

DESCRIPTION
  Describe an edge.

EXAMPLES
  
  # Describe the edge with the _key as "1w44RO8kQMG3kB0feiua1g" in the collection "relation".
  gdnsl graph edge describe social --collection relation --edge 1w44RO8kQMG3kB0feiua1g
```

## `@gdnsl/plugin-db graph edge list`

List edges starting or ending in the vertex.

```
USAGE
  $ @gdnsl/plugin-db graph edge list --vertex-id <value> --collection <value> [-h] [-c <value>] [--fabric <value>]
    [--direction in|out]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to create a graph
  --collection=<value>  (required) The id of the collection.
  --direction=<option>  Selects "in" or "out" direction for edges. If not set, any edges are returned.
                        <options: in|out>
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --vertex-id=<value>   (required) The id of the start vertex.

DESCRIPTION
  List edges starting or ending in the vertex.

EXAMPLES
  
  # Get the edges from the "relation" collection from any direction in the vertex "female/alice".
  gdnsl graph edge list --collection relation --vertex-id "female/alice"
 
  # Get the edges from the "relation" collection from "in" direction in the vertex "female/alice".
  gdnsl graph edge list --collection relation --vertex-id "female/alice" --direction "in"
```

## `@gdnsl/plugin-db graph edge replace NAME`

Replaces the data of an edge in the collection.

```
USAGE
  $ @gdnsl/plugin-db graph edge replace [NAME] --collection <value> --data <value> --edge <value> [-h] [-c <value>]
    [--fabric <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to update a graph
  --collection=<value>  (required) The name of the edge collection the edge belongs to.
  --data=<value>        (required) json string of the data to be stored
  --edge=<value>        (required) The _key attribute of the edge.
  --fabric=<value>      Name of the fabric. Default will be "_system"

DESCRIPTION
  Replaces the data of an edge in the collection.

EXAMPLES
  
  # Replace the edge with the _key as "1w44RO8kQMG3kB0feiua1g" in the collection "relation" in the graph "social".
  gdnsl graph edge replace social --collection relation --edge 1w44RO8kQMG3kB0feiua1g --data '{"name": "John", "lname": "Doe"}'
```

## `@gdnsl/plugin-db graph edge update NAME`

Update an edge.

```
USAGE
  $ @gdnsl/plugin-db graph edge update [NAME] --collection <value> --edge <value> --data <value> [-h] [-c <value>]
    [--fabric <value>] [--keep-null] [--return-old] [--return-new] [--if-match <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to update an edge
  --collection=<value>  (required) The name of the edge collection the edge belongs to.
  --data=<value>        (required) JSON body as string.
  --edge=<value>        (required) The _key attribute of the edge.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --if-match=<value>    If the "If-Match" header is given, then it must contain exactly one Etag. The document is
                        updated, if it has the same revision as the given Etag. Otherwise a HTTP 412 is returned
  --keep-null           Define if values set to null should be stored. By default the key is not removed from the
                        document. Default is true.
  --return-new          Define if a presentation of the new document should be returned within the response object.
                        Default is true.
  --return-old          Define if a presentation of the deleted document should be returned within the response object.
                        Default is false.

DESCRIPTION
  Update an edge.

EXAMPLES
  
  # Replace the edge with the _key as "1w44RO8kQMG3kB0feiua1g" in the collection "relation" in the graph "social".
  gdnsl graph edge update social --collection relation --edge 1w44RO8kQMG3kB0feiua1g --data '{"fname":"John"}'
```

## `@gdnsl/plugin-db graph list`

List graphs.

```
USAGE
  $ @gdnsl/plugin-db graph list [-h] [-c <value>] [--fabric <value>] [-o json]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to list graphs
  -o, --output=(json)   Output format. Only json is allowed.
  --fabric=<value>      Name of the fabric. Default will be "_system"

DESCRIPTION
  List graphs.

EXAMPLES
  
  # List all graphs
  gdnsl graph list
```

## `@gdnsl/plugin-db graph update GRAPHNAME`

Update a graph.

```
USAGE
  $ @gdnsl/plugin-db graph update [GRAPHNAME] [-h] [-c <value>] [--fabric <value>] [--stream |
    [--add-edge-definition <value> | --add-vertex-collection <value> | --remove-vertex-collection <value> |
    --replace-edge-definition <value> | --remove-edge-collection <value>] |  |  |  |  | --drop-collection | --collection
    <value>] [--wait-for-sync |  |  |  |  |  |  | ]

ARGUMENTS
  GRAPHNAME  Name of the graph.

FLAGS
  -c, --config=<value>
      gdnsl config file (default is ./gdnsl.yaml).

  -h, --help
      Help to update a graph.

  --add-edge-definition=<value>...
      specify the edge definition of the graph. This edge definition has to contain a collection and an array of each from
      and to vertex collections. An edge definition can only be added if this definition is either not used in any other
      graph, or it is used with exactly the same definition. It is not possible to store a definition "e" from "v1" to
      "v2" in the one graph, and "e" from "v2" to "v1" in the other graph.

  --add-vertex-collection=<value>
      Adds a vertex collection to the set of orphan collections of the graph. If the collection does not exist, it will be
      created.

  --collection=<value>
      The name of the edge collection the edge belongs to. Should be used with "--replace-edge-definition" flag.

  --drop-collection
      Drop the collection as well. Collection will only be dropped if it is not used in other graphs. Default value is
      false.

  --fabric=<value>
      Name of the fabric. Default will be "_system".

  --remove-edge-collection=<value>
      Remove one edge definition from the graph. This will only remove the edge collection, the vertex collections remain
      untouched and can still be used in your queries.

  --remove-vertex-collection=<value>
      The name of the edge collection the edge belongs to. Removes a vertex collection from the graph and optionally
      deletes the collection, if it is not used in any other graph. It can only remove vertex collections that are no
      longer part of edge definitions, if they are used in edge definitions you are required to modify those first.

  --replace-edge-definition=<value>...
      Specify the edge definition of the graph. This edge definition has to contain a collection and an array of each from
      and to vertex collections. An edge definition can only be added if this definition is either not used in any other
      graph, or it is used with exactly the same definition. It is not possible to store a definition "e" from "v1" to
      "v2" in the one graph, and "e" from "v2" to "v1" in the other graph.

  --[no-]stream
      Enable / Disable kv collection stream.

  --[no-]wait-for-sync
      Creating or changing a document will wait until the data has been synchronized to disk.

DESCRIPTION
  Update a graph.

EXAMPLES
  
  # The edge-definition format is "EDGE_COLLECTION:FROM_VERTICES:TO_VERTICES". Add an edge-definition to the graph "social" for the edge collection "relation", set "from" vertex as "female" & "male" and set "to" vertex as "female" & "male"
  gdnsl graph update social --add-edge-definition "relation:female,male:female,male"
 
  # Add a vertex collection "age" to the graph "social"'s orphan collections.
  gdnsl graph update social --add-vertex-collection "age"
 
  # Remove "age" vertex collection from graph "social".
  gdnsl graph update social --remove-vertex-collection "age"
 
  # Remove the edge definitions belonging to the "relation" edge collection.
  gdnsl graph update social --remove-edge-collection "relation"
 
  # The edge-definition format is "EDGE_COLLECTION:FROM_VERTICES:TO_VERTICES". Replace an edge-definition of the graph "social" for the edge collection "relation", set "from" vertices as "female" & "male", and set "to" vertices as "female" & "male". 
  gdnsl graph update social --collection relation --replace-edge-definition "relation:female,male:female,male"
 
  # Replace a vertex collection "age" to the graph "social"'s orphan collections and drop the collection if it is not being used.
  gdnsl graph update social --collection relation --replace-edge-definition "relation:female,male:female,male" --drop-collections
 
  # Enable stream on graph collection social.
  gdnsl graph update social --stream 
 
  # Disable stream on graph collection social.
  gdnsl graph update social --no-stream
 
  # Enable waitForSync on graph collection social.
  gdnsl graph update social --wait-for-sync 
 
  # Disable waitForSync on graph collection social.
  gdnsl graph update social --no-wait-for-sync
 
  # Enable stream and waitForSync on graph collection social.
  gdnsl graph update social --stream --wait-for-sync 
 
  # Disable stream and waitForSync on graph collection social.
  gdnsl graph update social --no-stream  --no-wait-for-sync
```

## `@gdnsl/plugin-db graph vertex create NAME`

Create a vertex.

```
USAGE
  $ @gdnsl/plugin-db graph vertex create [NAME] --collection <value> [-h] [-c <value>] [--fabric <value>] [--return-new]
    [--data <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to create a vertex.
  --collection=<value>  (required) The name of the vertex collection the vertex belongs to.
  --data=<value>        JSON string of the data to be stored.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --return-new          Define if the response should contain the complete new version of the document.

DESCRIPTION
  Create a vertex.

EXAMPLES
  
  # Create a vertex in the graph "social" with the vertex collection as "male".
  gdnsl graph vertex create social --collection male --data '{"name": "John"}'
```

## `@gdnsl/plugin-db graph vertex delete NAME`

Delete a vertex.

```
USAGE
  $ @gdnsl/plugin-db graph vertex delete [NAME] --collection <value> --vertex <value> [-h] [-c <value>] [--fabric
    <value>] [--return-old] [--if-match <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete a vertex
  --collection=<value>  (required) The name of the vertex collection the vertex belongs to.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --if-match=<value>    If the "If-Match" header is given, then it must contain exactly one Etag. The document is
                        updated, if it has the same revision as the given Etag. Otherwise a HTTP 412 is returned.
  --return-old          Define if a presentation of the deleted document should be returned within the response object.
                        Default is false.
  --vertex=<value>      (required) The _key attribute of the vertex.

DESCRIPTION
  Delete a vertex.

EXAMPLES
  
  # Delete a vertex in the graph "social" with the vertex collection as "male" having _key as "John".
  gdnsl graph vertex delete social --collection male --vertex "John"
  # Delete a vertex in the graph "social" with the vertex collection as "male" having _key as "John" and return the old object.
  gdnsl graph vertex delete social --collection male --vertex "John" --return-old
```

## `@gdnsl/plugin-db graph vertex describe NAME`

Describe a vertex.

```
USAGE
  $ @gdnsl/plugin-db graph vertex describe [NAME] --collection <value> --vertex <value> [-h] [-c <value>] [--fabric
    <value>] [--rev <value>] [--if-match <value>] [--if-none-match <value>]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>     gdnsl config file (default is ./gdnsl.yaml).
  -h, --help               Help to describe a vertex
  --collection=<value>     (required) The name of the vertex collection the vertex belongs to.
  --fabric=<value>         Name of the fabric. Default will be "_system"
  --if-match=<value>       If the "If-Match" header is given, then it must contain exactly one Etag. The document is
                           returned, if it has the same revision as the given Etag. Otherwise a HTTP 412 is returned. As
                           an alternative you can supply the Etag in an query parameter rev.
  --if-none-match=<value>  If the "If-None-Match" header is given, then it must contain exactly one Etag. The document
                           is returned, only if it has a different revision as the given Etag. Otherwise a HTTP 304 is
                           returned.
  --rev=<value>            Must contain a revision. If this is set a document is only returned if it has exactly this
                           revision. Also see if-match header as an alternative to this.
  --vertex=<value>         (required) The _key attribute of the vertex.

DESCRIPTION
  Describe a vertex.

EXAMPLES
  
  # Describe the vertex with the _key as "bob" in the collection "male".
  gdnsl graph vertex describe social --collection male --vertex bob
```

## `@gdnsl/plugin-db graph vertex replace NAME`

Replace a vertex.

```
USAGE
  $ @gdnsl/plugin-db graph vertex replace [NAME] --collection <value> --vertex <value> --data <value> [-h] [-c <value>]
    [--fabric <value>] [--return-new] [--keep-null] [--return-old] [--if-match]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to replace a vertex
  --collection=<value>  (required) The name of the vertex collection the vertex belongs to.
  --data=<value>        (required) json string of the data to be stored.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --if-match            If the "If-Match" header is given, then it must contain exactly one Etag. The document is
                        updated, if it has the same revision as the given Etag. Otherwise a HTTP 412 is returned.
  --keep-null           Define if values set to null should be stored. By default the key is not removed from the
                        document. Default is false.
  --return-new          Define if the response should contain the complete new version of the document. Default is
                        false.
  --return-old          Define if a presentation of the deleted document should be returned within the response object.
                        Default is false.
  --vertex=<value>      (required) The _key attribute of the vertex.

DESCRIPTION
  Replace a vertex.

EXAMPLES
  
  # Replace a vertex having _key "John" in the graph "social" with the vertex collection as "male".
  gdnsl graph vertex replace social --collection male --vertex "John" --data '{"name": "John", "lname": "Doe"}'
```

## `@gdnsl/plugin-db graph vertex update NAME`

Update a vertex.

```
USAGE
  $ @gdnsl/plugin-db graph vertex update [NAME] --collection <value> --vertex <value> --data <value> [-h] [-c <value>]
    [--fabric <value>] [--return-new] [--keep-null] [--return-old] [--if-match]

ARGUMENTS
  NAME  Name of the graph.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to update a vertex
  --collection=<value>  (required) The name of the edge collection the edge belongs to.
  --data=<value>        (required) JSON string of the data to be stored.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --if-match            If the "If-Match" header is given, then it must contain exactly one Etag. The document is
                        updated, if it has the same revision as the given Etag. Otherwise a HTTP 412 is returned.
  --keep-null           Define if values set to null should be stored. By default the key is not removed from the
                        document. Default is false.
  --return-new          Define if the response should contain the complete new version of the document. Default is
                        false.
  --return-old          Define if a presentation of the deleted document should be returned within the response object.
                        Default is false.
  --vertex=<value>      (required) The _key attribute of the vertex.

DESCRIPTION
  Update a vertex.

EXAMPLES
  
  # Update a vertex having _key "John" in the graph "social" with the vertex collection as "male".
  gdnsl graph vertex update social --collection male --vertex "John" --data '{"name": "John", "lname": "Doe"}'
```

## `@gdnsl/plugin-db help [COMMAND]`

Display help for @gdnsl/plugin-db.

```
USAGE
  $ @gdnsl/plugin-db help [COMMAND] [-n]

ARGUMENTS
  COMMAND  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for @gdnsl/plugin-db.
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.11/src/commands/help.ts)_

## `@gdnsl/plugin-db import COLLECTION`

Import collection data.

```
USAGE
  $ @gdnsl/plugin-db import [COLLECTION] [-h] [-c <value>] [--fabric <value>] [--primary-key <value>]
    [--replace] [--details] [--batch-size <value> [--file <value> | [--json <value> | --csv <value> | --columns <value>]
    |  | ]]

ARGUMENTS
  COLLECTION  Existing collection to import the data to.

FLAGS
  -c, --config=<value>   gdnsl config file (default is ./gdnsl.yaml).
  -h, --help             help for import command
  --batch-size=<value>   Number of docs to be imported in a batch. Cannot be greater than the set tenant limit. Default
                         will the tenant limit.
  --columns=<value>      should be a comma separated list of column names.
  --csv=<value>          should be an array of csv rows. Each row is separated by a newline character.
  --details              if true extra information for errors and unprocessed documents will be returned in the result.
  --fabric=<value>       Name of the fabric. Default will be "_system"
  --file=<value>         path to JSON or CSV file. File format is inferred from the file extension
  --json=<value>         should be an array of json documents. Each document is interpreted separately.
  --primary-key=<value>  if specified, this attribure will be used as _key of the new document. It must follow
                         https://macrometa.dev/documents/naming-conventions/#document-keys . If document already
                         contains _key then it will be renamed as old_key.
  --replace              if true existing document having same _key in the colletion, shall be replaced.

DESCRIPTION
  Import collection data.

EXAMPLES
  # Import documents in the "addresses" collection.
  gdnsl import addresses --json "[{\"name\": \"John\"}, {\"lname\": \"Doe\"}]"
 
  # Import documents in the "addresses" collection with primaryKey as "name".
  gdnsl import addresses --json "[{\"name\": \"John\"}, {\"lname\": \"Doe\"}]" --primary-key "name"
 
  # Import documents with existing document having same _key in the colletion, shall be replaced.
  gdnsl import addresses --json "[{\"name\": \"John\"}, {\"lname\": \"Doe\"}]" --replace
 
  # Import documents with extra information for errors and unprocessed documents returned in the result.
  gdnsl import addresses --json "[{\"name\": \"John\"}, {\"lname\": \"Doe\"}]" --details
 
  # Import documents in the "addresses" collection.
  gdnsl import addresses --csv "John,Doe 
   Jane,Doe" --columns "name, lname"
 
  # Import documents in the "addresses" collection with primaryKey as "name".
  gdnsl import addresses --csv "John,Doe 
   Jane,Doe" --columns "name, lname" --primary-key "name"
 
  # Import documents with existing document having same _key in the colletion, shall be replaced.
  gdnsl import addresses --csv "John,Doe 
   Jane,Doe" --columns "name, lname" --replace
 
  # Import documents with extra information for errors and unprocessed documents returned in the result.
  gdnsl import addresses --csv "John,Doe 
   Jane,Doe" --columns "name, lname" --details
 
  # Import documents from a JSON file.
  gdnsl import --file "path_to_file/import.json"
 
  # Import documents from a CSV file.
  gdnsl import --file "path_to_file/import.csv"
 
  #Import documents from a JSON file with bacth size of 1000.
  gdnsl import --file import.json --batch-size=1000
```

_See code: [dist/commands/import.ts](https://github.com/Macrometacorp/gdnsl/blob/v0.0.55/dist/commands/import.ts)_

## `@gdnsl/plugin-db index create NAME`

Create an index of a collection.

```
USAGE
  $ @gdnsl/plugin-db index create [NAME] --type persistent|ttl|geo --fields <value> [-h] [-c <value>] [--fabric
    <value>] [--sparse] [--unique] [--expire-after <value>] [--geo-json]

ARGUMENTS
  NAME  Collection name

FLAGS
  -c, --config=<value>    gdnsl config file (default is ./gdnsl.yaml).
  -h, --help              Help to create an index
  --expire-after=<value>  The time (in seconds) after a document's creation after which the documents count as
                          "expired". Applicable only for "ttl" index.
  --fabric=<value>        Name of the fabric. Default will be "_system"
  --fields=<value>        (required) Comma seperated attribute paths (i.e. "f1, f2"). Note: For ttl, exactly one
                          attribute path is required.
  --geo-json              If true, creates a geo-spatial index. Applicable only for "geo" index.
  --sparse                If true, then create a sparse index. Applicable only for "persistent" index.
  --type=<option>         (required) Type of the index. Must be one of: persistent, ttl, geo
                          <options: persistent|ttl|geo>
  --unique                If true, then create a unique index. Applicable only for "persistent" index.

DESCRIPTION
  Create an index of a collection.

EXAMPLES
  # Create a PERSISTENT index on cities collection.
  gdnsl index create cities --type persistent --fields "f1, f2"
  # Create a sparse persistent index on cities collection.
  gdnsl index create cities --type persistent --fields "f1, f2" --sparse
  # Create a unique persistent index on cities collection.
  gdnsl index create cities --type persistent --fields "f1, f2" --unique
  # Create a sparse and unique persistent index on cities collection.
  gdnsl index create cities --type persistent --fields "f1, f2" --unique --sparse
  # Create a TTL index on cities collection.
  gdnsl index create cities --type ttl --fields "f1, f2"
  # Create a TTL index with expirytime on cities collection.
  gdnsl index create cities --type ttl --expireAfter --fields "f1, f2"
  # Create a GEO index with latitude and longitude fields in cities collection.
  gdnsl index create cities --type geo --fields "f1, f2"
  # Create a GEO index with longitude and latitude fields in cities collection.
  gdnsl index create cities --type geo --geo-json --fields "f1, f2"
```

## `@gdnsl/plugin-db index delete NAME INDEX-NAME`

Delete an index of a collection.

```
USAGE
  $ @gdnsl/plugin-db index delete [NAME] [INDEX-NAME] [-h] [-c <value>] [--fabric <value>]

ARGUMENTS
  NAME        Collection name.
  INDEX-NAME  Index name.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete an index.
  --fabric=<value>      Name of the fabric. Default will be "_system"

DESCRIPTION
  Delete an index of a collection.

EXAMPLES
  # Delete index named idx_1719031308384993280 on cities collection.
  gdnsl index delete cities idx_1719031308384993280
```

## `@gdnsl/plugin-db index describe NAME INDEX-NAME`

Get details of an index.

```
USAGE
  $ @gdnsl/plugin-db index describe [NAME] [INDEX-NAME] [-h] [-c <value>] [--fabric <value>]

ARGUMENTS
  NAME        Collection name.
  INDEX-NAME  Index name.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to get details of a collection
  --fabric=<value>      Name of the fabric. Default will be "_system".

DESCRIPTION
  Get details of an index.

EXAMPLES
  # Get details of index1 index in cities collection.
  gdnsl index describe cities index1
```

## `@gdnsl/plugin-db index list NAME`

List all indexes of a collection.

```
USAGE
  $ @gdnsl/plugin-db index list [NAME] [-h] [-c <value>] [--fabric <value>] [-o json]

ARGUMENTS
  NAME  Collection name.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to list all indexes of a collection.
  -o, --output=(json)   Output format. Only json is allowed
  --fabric=<value>      Name of the fabric. Default will be "_system".

DESCRIPTION
  List all indexes of a collection.

EXAMPLES
  # List all indexes on cities collection.
  gdnsl index list cities
```

## `@gdnsl/plugin-db kv create NAME`

Create a KV collection.

```
USAGE
  $ @gdnsl/plugin-db kv create [NAME] [-h] [-c <value>] [--fabric <value>] [--ttl] [--stream]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to create KV collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --stream              Enable stream on the collection. Default is false.
  --ttl                 Enable TTL on the collection. Default is false.

DESCRIPTION
  Create a KV collection.

EXAMPLES
  # Create a global KV collection.
  gdnsl kv create cities
  # Create a global KV collection with ttl.
  gdnsl kv create cities --ttl 
  # Create a global KV collection with stream enabled.
  gdnsl kv create cities --stream 
  # Create a global KV collection with both TTL and Stream enabled.
  gdnsl kv create cities --ttl --stream
```

## `@gdnsl/plugin-db kv delete NAME`

Delete a KV collection.

```
USAGE
  $ @gdnsl/plugin-db kv delete [NAME] [-h] [-c <value>] [--fabric <value>] [--keyarray <value>] [--key <value>]
    [--truncate]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to delete a KV collection
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --key=<value>         Delete entry for given key from KV collection.
  --keyarray=<value>    Delete entries for all given keys from KV collection.
  --truncate            Delete all entries from KV collection.

DESCRIPTION
  Delete a KV collection.

EXAMPLES
  # Delete cities KV collection.
  gdnsl kv delete cities
 
  # Delete key1, key2 entries from cities KV collection.
  gdnsl kv delete cities --keyarray "k1, k2" 
 
  # Delete key1 from cities KV collection.
  gdnsl kv delete cities --key k1 
 
  # Delete all entries from cities KV collection.
  gdnsl kv delete cities --truncate
```

## `@gdnsl/plugin-db kv get NAME`

Get keys, values or count from a Key Value collection.

```
USAGE
  $ @gdnsl/plugin-db kv get [NAME] [-h] [--count] [--keys] [--values] [--offset <value>] [--limit <value>]
    [--order asc|desc] [--keyarray <value>] [--key <value>] [-c <value>] [--fabric <value>] [-o json]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to get keys, values or count from a Key Value collection.
  -o, --output=(json)   Output format. Only json is allowed.
  --count               Number of entries in the KV collection.
  --fabric=<value>      Name of the fabric. Default will be "_system".
  --key=<value>         Get value for a given key in the KV collection.
  --keyarray=<value>    String List of comma separated keys
  --keys                Get all keys in the KV collection.
  --limit=<value>       [default: 20] Default value 20. Max 10000
  --offset=<value>      Default value 0
  --order=<option>      [default: asc] String "asc" or "desc". Default value asc.
                        <options: asc|desc>
  --values              Get all values in the KV collection.

DESCRIPTION
  Get keys, values or count from a Key Value collection.

EXAMPLES
  # Get number of entries in cities collection
  gdnsl kv get cities --count 
 
  # Get all keys in cities collection.
  gdnsl kv get cities --keys 
 
  # Get keys in cities collection.
  gdnsl kv get cities --keys --offset 0 --limit 50 --order asc 
 
  # Get all values in cities collection.
  gdnsl kv get cities --values 
 
  # Get keys in cities collection.
  gdnsl kv get cities --values --offset 0 --limit 50 --order asc cities --keys 
 
  # Get keys in cities collection.
  gdnsl kv get cities --values --keyarray "key1, key2, key3" 
 
  # Get value for key1 in cities collection.
  gdnsl kv get cities --key key1
```

## `@gdnsl/plugin-db kv list`

List Key Value collections.

```
USAGE
  $ @gdnsl/plugin-db kv list [-h] [-c <value>] [--fabric <value>] [-o json]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to list Key Value collections.
  -o, --output=(json)   Output format. Only json is allowed.
  --fabric=<value>      Name of the fabric. Default will be "_system"

DESCRIPTION
  List Key Value collections.

EXAMPLES
    # List all KV collections.
      gdnsl kv list
```

## `@gdnsl/plugin-db kv set NAME`

Set values or KV pair in a Key Value collection.

```
USAGE
  $ @gdnsl/plugin-db kv set [NAME] [-h] [--ttl <value> [--key <value> --value <value>]] [--kv <value> |  | ]
    [-c <value>] [--fabric <value>]

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to set values or KV pair in a Key Value collection.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --key=<value>         Key for the kv entry.
  --kv=<value>...       key value string for the KV collection i.e. "k1:v1:12234324".
  --ttl=<value>         Unix timestamp, indicating when the value will expire (-1 means no expiration).
  --value=<value>       Value for the kv entry.

DESCRIPTION
  Set values or KV pair in a Key Value collection.

EXAMPLES
  # Add k1:v1 entry to cities collection with TTL. (unix timestamp in seconds)
  gdnsl kv set cities --key k1 --value v1 --ttl 1671658506
 
  # Add k1:v1 entry to cities collection with no expiration.
  gdnsl kv set cities --key k1 --value v1
 
  # Add [k1:v1, k2:v2, k3:v3] entries to cities collection.
  gdnsl kv set cities --kv "k1:v1" --kv "k2:v2" --kv "k3:v3" 
 
  # Add [k1:v1, k2:v2, k3:v3] entries to cities collection with TTL.
  gdnsl kv set cities --kv "k1:v1:1671658506" --kv "k2:v2:1645479306", --kv "k3:v3:-1"
```

## `@gdnsl/plugin-db kv update NAME`

Enable stream on collection.

```
USAGE
  $ @gdnsl/plugin-db kv update [NAME] [-h] [-c <value>] [--fabric <value>] [--stream] [--wait-for-sync]

ARGUMENTS
  NAME  Name of the kv collection.

FLAGS
  -c, --config=<value>  gdnsl config file (default is ./gdnsl.yaml).
  -h, --help            Help to enable stream on kv collection.
  --fabric=<value>      Name of the fabric. Default will be "_system"
  --[no-]stream         Enable / Disable kv collection stream.
  --[no-]wait-for-sync  Creating or changing a document will wait until the data has been synchronized to disk.

DESCRIPTION
  Enable stream on collection.

EXAMPLES
  
  # Enable stream on kv collection cities.
  gdnsl kv update cities --stream 
 
  # Disable stream on kv collection cities.
  gdnsl kv update cities --no-stream
 
  # Enable waitForSync on kv collection cities.
  gdnsl kv update cities --wait-for-sync 
 
  # Disable waitForSync on kv collection cities.
  gdnsl kv update cities --no-wait-for-sync
 
  # Enable stream and waitForSync on kv collection cities.
  gdnsl kv update cities --stream --wait-for-sync 
 
  # Disable stream and waitForSync on kv collection cities.
  gdnsl kv update cities --no-stream  --no-wait-for-sync
```

## `@gdnsl/plugin-db query [QUERY]`

Commands to work with GDN queries.

```
USAGE
  $ @gdnsl/plugin-db query [QUERY] [-h] [--config <value>] [--fabric <value>] [--validate | --explain |
    --batch-size <value> | --intermediate-commit-count <value> | --intermediate-commit-size <value> |
    --max-transaction-size <value> | --max-warning-count <value> | --profile 1|2 | --ttl <value> | --optimizer-rule
    <value> | --skip-inaccessible-collections | --stream | --fail-on-warning | --full-count | --count | --sql]
    [--all-plans ] [--max-number-of-plans <value> ] [--file <value> | -p <value> |  |  |  |  |  |  |  |  |  |  |  |  |
    | ]

ARGUMENTS
  QUERY  contains the query string to be executed

FLAGS
  -h, --help
      Help for queries.

  -p, --param=<value>...
      key=value pair representing the bind parameters

  --all-plans
      if set to true, all possible execution plans will be returned. The default is false, meaning only the optimal plan
      will be returned

  --batch-size=<value>
      [default: 100] Sets the batch size of queries. This batch size decides how many results are returned as part of
      query output. If this option is not specified, default value is used. Maximum allowed for this parameter is 1000

  --config=<value>
      gdnsl config file (default is ./gdnsl.yaml).

  --count
      return total document count of the collection in the response

  --explain
      explain a query

  --fabric=<value>
      Name of the fabric. Default will be "_system".

  --fail-on-warning
      When set to true, the query will throw an exception and abort instead of producing a warning. This option should be
      used during development to catch potential issues early. When the attribute is set to false, warnings will not be
      propagated to exceptions and will be returned with the query result.

  --file=<value>
      path to read the JSON file from

  --full-count
      if set to true and the query contains a LIMIT clause, then the result will have an extra attribute with the
      sub-attributes stats and fullCount

  --intermediate-commit-count=<value>
      Maximum number of operations after which an intermediate commit is performed automatically. Note: Use this option
      cautiously. The transactions are commited after every specific record count. In case of error, already commited
      records are not rolled back

  --intermediate-commit-size=<value>
      Maximum total size of operations after which an intermediate commit is performed automatically, Note: Use this
      option cautiously. The transactions are commited after every specific query memory size. In case of error, already
      commited records are not rolled back.

  --max-number-of-plans=<value>
      an optional maximum number of plans that the optimizer is allowed to generate. Setting this attribute to a low value
      allows to put a cap on the amount of work the optimizer does

  --max-transaction-size=<value>
      Transaction size limit in bytes

  --max-warning-count=<value>
      [default: 10]  Limits the maximum number of warnings a query will return

  --optimizer-rule=<value>...
      to-be-included or to-be-excluded optimizer rules can be put into this attribute, telling the optimizer to include or
      exclude specific rules. To disable a rule, prefix its name with a -, to enable a rule, prefix it with a +. There is
      also a pseudo-rule all, which will match all optimizer rules

  --profile=<option>
      If set to 1, then the additional query profiling information will be returned in the sub-attribute profile of the
      extra return attribute, if the query result is not served from the query cache. Set to 2 the query will include
      execution stats per query plan node in sub-attribute stats.nodes of the extra return attribute. Additionally the
      query plan is returned in the sub-attribute extra.plan.
      <options: 1|2>

  --skip-inaccessible-collections
      C8QL queries (especially graph traversals) will treat collection to which a user has no access rights as if these
      collections were em