You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by gi...@apache.org on 2020/11/24 11:43:52 UTC

[incubator-hop-docs] branch asf-site updated: Documentation updated to 08992ca

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-hop-docs.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new c743a2a  Documentation updated to 08992ca
c743a2a is described below

commit c743a2aeb1df1250e007a4a8b8a6dabf9b66774d
Author: jenkins <bu...@apache.org>
AuthorDate: Tue Nov 24 11:43:48 2020 +0000

    Documentation updated to 08992ca
---
 .../modules/.asciidoctor/pages/index.adoc          |   2 +
 hop-user-manual/modules/ROOT/nav.adoc              |   2 +
 .../pages/plugins/transforms/mongodbinput.adoc     | 271 +++++++++++++++++
 .../pages/plugins/transforms/mongodboutput.adoc    | 334 +++++++++++++++++++++
 4 files changed, 609 insertions(+)

diff --git a/hop-user-manual/modules/.asciidoctor/pages/index.adoc b/hop-user-manual/modules/.asciidoctor/pages/index.adoc
index 161ecc0..71bcaa4 100644
--- a/hop-user-manual/modules/.asciidoctor/pages/index.adoc
+++ b/hop-user-manual/modules/.asciidoctor/pages/index.adoc
@@ -136,6 +136,8 @@ include::{sourcepath}/plugins/transforms/mergerows.adoc[leveloffset=+2]
 include::{sourcepath}/plugins/transforms/metainject.adoc[leveloffset=+2]
 include::{sourcepath}/plugins/transforms/excelinput.adoc[leveloffset=+2]
 include::{sourcepath}/plugins/transforms/exceloutput.adoc[leveloffset=+2]
+include::{sourcepath}/plugins/transforms/mongodbinput.adoc[leveloffset=+2]
+include::{sourcepath}/plugins/transforms/mongodboutput.adoc[leveloffset=+2]
 include::{sourcepath}/plugins/transforms/multimerge.adoc[leveloffset=+2]
 include::{sourcepath}/plugins/transforms/nullif.adoc[leveloffset=+2]
 include::{sourcepath}/plugins/transforms/numberrange.adoc[leveloffset=+2]
diff --git a/hop-user-manual/modules/ROOT/nav.adoc b/hop-user-manual/modules/ROOT/nav.adoc
index 165cf81..3595ebb 100644
--- a/hop-user-manual/modules/ROOT/nav.adoc
+++ b/hop-user-manual/modules/ROOT/nav.adoc
@@ -119,6 +119,8 @@
 *** xref:plugins/transforms/metainject.adoc[Metadata Injection]
 *** xref:plugins/transforms/excelinput.adoc[Microsoft Excel input]
 *** xref:plugins/transforms/exceloutput.adoc[Microsoft Excel output]
+*** xref:plugins/transforms/mongodbinput.adoc[MongoDB Input]
+*** xref:plugins/transforms/mongodboutput.adoc[MongoDB Output]
 *** xref:plugins/transforms/multimerge.adoc[Multiway Merge Join]
 *** xref:plugins/transforms/nullif.adoc[Null If]
 *** xref:plugins/transforms/numberrange.adoc[Number range]
diff --git a/hop-user-manual/modules/ROOT/pages/plugins/transforms/mongodbinput.adoc b/hop-user-manual/modules/ROOT/pages/plugins/transforms/mongodbinput.adoc
new file mode 100644
index 0000000..12d2ae3
--- /dev/null
+++ b/hop-user-manual/modules/ROOT/pages/plugins/transforms/mongodbinput.adoc
@@ -0,0 +1,271 @@
+:documentationPath: /plugins/transforms/
+:language: en_US
+:page-alternativeEditUrl: https://github.com/apache/incubator-hop/edit/master/plugins/transforms/mongodb/src/main/doc/mondodbinput.adoc
+
+= MongoDB Input
+
+== Description
+
+The MongoDB Input pipeline transform enables you to retrieve http://docs.mongodb.org/manual/reference/glossary/[documents] or http://docs.mongodb.org/manual/reference/glossary/[records] from a collection within MongoDB.
+For additional information about MongoDB, see the MongoDB http://www.mongodb.org/[documentation].
+
+== Options
+
+
+=== General
+
+Transform name : Specify the unique name of the MongoDB Input transform in the pipeline.
+Preview button:  Display the rows generated by this transform. Enter the maximum number of records that you want to preview, then click OK. The preview data appears in the Examine preview data window.
+
+=== Configure Connection tab
+
+image::mongodb-input-screenshot-connection-tab.png[]
+
+|===
+|Field |Description
+
+|Host name(s) or IP address(es)
+|Specify the network name or address of the MongoDB instance or instances. You can also specify a different port number for each host name by separating the host name and port number with a colon. You can input multiple host names or IP addresses, separated by a comma.
+
+|Port
+|Specify the port number of the MongoDB instance or instances. Use this to specify a default port if no ports are given as part of the host name(s) or IP address(es) field. The default value is 27017.
+
+|Enable SSL connection
+|Specify to connect to a MongoDB Server that is configured with SSL.
+
+|Use all replica set members/mongos
+|Select to use all replica sets when multiple hosts are specified in the Host name(s) or IP address(s) field. If a replica set contains more than one host, the Java driver discovers all hosts automatically. The driver connects to the next replica set in the list if the selected set is unavailable.
+
+|Authentication database
+|Specify the authentication database.
+
+|Authenticate Mechanism
+|Select the method used to verify the identity of users. The values are SCRAM-SHA-1, MONGODB-CR and PLAIN.
+
+|Username
+|Specify the username required to access the database. When using Kerberos authentication, enter the Kerberos principal.
+
+|Password
+|Specify the password associated with the username. If you are using Kerberos authentication, you do not need to enter the password.
+
+|Authenticate using Kerberos
+|Select to specify authentication using Kerberos. When selected, enter the Kerberos principal as the Username.
+
+|Connection timeout
+|Specify (in milliseconds) how long to wait for a connection to a database before terminating the connection attempt. Leave blank to never terminate the connection.
+
+|Socket timeout
+|Specify (in milliseconds) how long to wait for a write operation before terminating the operation. Leave blank to never terminate the operation.
+
+|===
+
+=== Input options tab
+
+image::mongodb-input-screenshot-input-tab.png[]
+
+The Input options tab enables you to specify which database and collection you want to retrieve information from. You can also indicate the read preferences and tag sets in this tab.
+
+Enter the following information in the Input options fields:
+
+
+|===
+|Option|Definition
+
+|Database
+|Name of the database to retrieve data from. Click Get DBs to populate the drop-down menu with a list of databases on the server.
+
+|Collection
+|Name of the collection to retrieve data from. Click Get collections to populate the drop-down menu with a list of collections within the database.
+
+|Read preference
+|Specify which node to read first: Primary, Primary preferred, Secondary, Secondary preferred, or Nearest.
+
+|===
+
+==== Tag set specification table
+
+Tags allow you to customize write concerns and read preferences for a replica set. The Tag set specification table allows you to specify criteria for selecting replica set members. See Tag Sets for more information.
+
+Enter the following information in the Tag Set fields:
+
+
+|===
+|Field|Description
+
+|#
+|Indicates the number of the tag set.
+
+|Tag set
+|Displays the tag set criteria. You can join, delete, copy, and paste tag sets, then click Test tag set to see which replica set members match your Tag set specification criteria.
+
+|Get Tags
+|Click Get tags to retrieve a list of tag sets in the source database. Set are listed in order of execution.
+
+|Join tags
+|Click Join tags to append selected tag sets so that nodes matching the criteria are queried or written to simultaneously. If you select individual tag sets, then click Join tags, the tag sets are combined to create one tag set. Note that this change only occurs in the MongoDB Input window, not on the database.
+
+|Test tag set
+|Click Test tag set to display set members that match the tags indicated in the tag set specification. The ID, host name, priority, and tags for each replica set member that matches the tag set specification criteria are displayed.
+
+|===
+
+=== Query tab
+
+image::mongodb-input-screenshot-query-tab.png[]
+
+The Query tab enables you to refine read requests. This tab operates in two different query modes:
+
+* *Query expression* mode (default)
+* *Aggregation pipeline specification* mode.
+
+The *Query is aggregation pipeline* option toggles between these two modes.
+The Query expression uses MongoDB’s JSON-like query language with query operators to perform https://docs.mongodb.com/manual/reference/operator/query/[query operations].
+The *Aggregation pipeline specification* field uses MongoDB’s http://docs.mongodb.org/manual/applications/aggregation/[aggregation framework] to transform and combine documents in a collection.
+An aggregation pipeline connects several https://docs.mongodb.com/manual/core/aggregation-pipeline/#pipeline-expressions[pipeline expressions] together, with the output of the previous expression becoming the input for the next.
+
+Enter the following information in the Query fields:
+
+
+|===
+|Fields/Option |Definition
+
+|Query expression (JSON)
+|Enter a query expression in this field to limit the output.
+
+|Aggregation pipeline specification (JSON)
+|Select the *Query is aggregation pipeline* option to display the *Aggregation pipeline specification (JSON)* field. Then enter a pipeline expression to perform aggregations or selections. The method name, including the collection name of the database you selected in the Input Options tab, appears after the label for this field.
+
+|Query is aggregation pipeline
+|Select this option to use the aggregation pipeline framework.
+
+|Execute for each row
+|Select this option to perform the query on each row of data.
+
+|Fields expression (JSON)
+|Enter an argument to control the projection (fields to return) from a query. If empty, all fields are returned. This field is only available for query expressions.
+
+|===
+
+=== Fields tab
+
+image::mongodb-input-screenshot-fields-tab.png[]
+
+Use the Fields tab to define properties for exported fields.
+The Fields tab operates in two different modes:
+
+1. including all fields in a single JSON field
+2. including selected fields in the output.
+
+If you store the output in a single JSON field, you can parse this JSON using the JSON Input transform, or by using a User Defined Java Class transform.
+
+*Note:* All fields in the Fields tab except the Name of JSON output field are inactive when the Output single JSON field is selected.
+When the Output single JSON field is not selected, the Name of JSON output field is inactive.
+
+General options:
+
+* *The Get fields button*:  Click it to generate a sample set of documents. You can edit the list of field names, paths, and data type for each field in the sample.
+* *Output single JSON field*: Specify that the query results in a single JSON field with the String data type (default).
+* *Name of JSON output field*: Specify the field name of containing the JSON output from the server.
+
+
+Enter the following information in the table if you want to output distinct fields:
+
+
+|===
+|Option| Definition
+
+|#
+|The order of this entry in the list.
+
+|Name
+|The name of the field based on the value in the Path field. The name that appears here maps the name of the field as it appears in the PDI transformation with the field that appears in the MongoDB database. You can edit the name.
+
+|Path
+|Indicates the JSON path of the field in MongoDB. If the path shown is an array, you can specify a specific element of the array by passing it the key value in the bracketed part of the array. For example, $.emails[0] indicates that you want the result to display the first value in the array.
+To display all array values, use the asterisk as the key, like this $.email[*]. If the array contains records, and not just strings, you can specify that you want to display the record like this: $.emails[].sender.
+
+|Type
+|Indicates the data type.
+
+|Indexed values
+|Specify a comma-separated list of legal values for String fields. When you specify values in this field, the Kettle indexed data type is applied to the data. If no values are specified, the String data type is applied. Usually, you will only need to modify this field if you are using Weka metadata for nominal fields.
+
+|Sample: array min: max index
+|Indicates minimum and maximum values for the index in the sampled documents.
+
+|Sample: #occur/#docs
+|Indicates how often the field occurs and the number of documents processed.
+
+|Sample: disparate types
+|Indicates if different data types populate the same field in the sampled documents. When several documents are sampled and the same field contain different data types, the Sample: disparate types field is populated with a Y and the Type field displays the String data type. The Kettle type for the field is set to the String data type, for different output value types.
+
+|===
+
+== Examples
+
+The following sections contain examples of query expressions and aggregate pipelines.
+
+=== Query expression
+
+MongoDB allows you to select and filter documents in a collection using specific fields and values.
+The http://docs.mongodb.org/manual/reference/mongodb-extended-json/[MongoDB Extended JSON] documentation details how to use queries. Pentaho supports only the features discussed on this page.
+
+The following table displays some examples of the syntax and structure of the queries you can use to request data from MongoDB:
+
+
+|===
+|Query expression |Description
+
+|```{ name : "MongoDB" }```
+|Queries all values where the name field has a value equal to MongoDB.
+
+|```{ name : { '$regex' : "m.*", '$options' : "i" } }```
+|Uses a regular expression to find name fields starting with m, case insensitive.
+
+|```{ name : { '$gt' : "M" } }```
+|Searches all strings greater than M.
+
+|```{ name : { '$lte' : "T" } }```
+|Searches all strings less than or equal to T.
+
+|```{ name : { '$in' : [ "MongoDB", "MySQL" ] } }```
+|Finds all names that are either MongoDB or MySQL (Reference).
+
+|```{ name : { '$nin' : [ "MongoDB", "MySQL" ] } }```
+|Finds all names that are not either MongoDB or MySQL, or where the field is not set .
+
+|```{ created_at : { $gte : { $date : "2014-12-31T00:00:00.000Z" } } }```
+|Finds all created_at documents that are greater than or equal to the specified UTC date.
+
+|```{ $where : "this.count == 1" }```
+|Uses JavaScript to evaluate a condition.
+
+|```{ $query: {}, $orderby: { age : -1 } }```
+|Returns all documents in the collection named collection sorted by the age field in descending order.
+
+|===
+
+=== Aggregate pipeline
+
+MongoDB allows you to select and filter documents using the http://docs.mongodb.org/manual/tutorial/aggregation-examples/[aggregation] pipeline framework.
+The Aggregation page in the MongoDB documentation provides additional examples of function calls.
+
+The following table displays some examples of the query syntax and structure you can use to request data from MongoDB:
+
+
+|===
+|Query expression |Description
+
+|```{ $match : {state : "FL", city : "ORLANDO" } }, {$sort : {pop : -1 } }```
+|Returns all fields from all documents where the state field has a value of FL and the city field has a value of ORLANDO. The returned documents will be sorted by the pop field in descending order.
+
+|```{ $group : { _id: "$state"} }, { $sort : { _id : 1 } }```
+|Returns one field named _id containing the distinct values for state in ascending order. This is similar to the SQL statement SELECT DISTINCT state AS _id FROM collection ORDER BY state ASC.
+
+|```{ $match : {state : "FL" } }, { $group: {_id: "$city" , pop: { $sum: "$pop" } } }, { $sort: { pop: -1 } }, { $project: {_id : 0, city : "$_id" } }```
+|Returns all documents where the state field has a value of FL, aggregates all values of pop for each city, sorts by population descending, and returns one field named city.
+
+|```{ $unwind : "$result" }```
+|Peels off the elements of an array individually, and returns one document for each element of the array.
+
+|===
diff --git a/hop-user-manual/modules/ROOT/pages/plugins/transforms/mongodboutput.adoc b/hop-user-manual/modules/ROOT/pages/plugins/transforms/mongodboutput.adoc
new file mode 100644
index 0000000..29be6c2
--- /dev/null
+++ b/hop-user-manual/modules/ROOT/pages/plugins/transforms/mongodboutput.adoc
@@ -0,0 +1,334 @@
+:documentationPath: /plugins/transforms/
+:language: en_US
+:page-alternativeEditUrl: https://github.com/apache/incubator-hop/edit/master/plugins/transforms/mongodb/src/main/doc/mondodboutput.adoc
+
+= MongoDB Output
+
+== Description
+
+The MongoDB Output pipeline transform can output data to a MongoDB database http://docs.mongodb.org/manual/reference/glossary/[collection].
+
+For additional information about MongoDB, see the MongoDB http://www.mongodb.org/[documentation].
+
+== Options
+
+=== General
+
+Transform name : Specify the unique name of the MongoDB Output transform in the pipeline.
+
+=== Configure Connection tab
+
+image::mongodb-output-screenshot-connection-tab.png[]
+
+The *Configure connection* tab enables you to specify the database and collection for your output.
+
+Enter the following information in the transform fields:
+
+
+|===
+|Field|Description
+
+|Host name(s) or IP address(s)
+|Specify the network name or address of the MongoDB instance(s). You can also specify a different port number for each host name by separating the host name and port number with a colon. You can input multiple host names or IP addresses, separated by a comma.
+
+|Port
+|Specify the port number of the MongoDB instance or instances. Use this to specify a default port if no ports are given as part of the host name(s) or IP address(es) field. The default value is 27017.
+
+|Enable SSL connection
+|Specify to connect to a MongoDB Server that is configured with SSL.
+
+|Use all replica set members/mongos
+|Select to use all replica sets when multiple hosts are specified in the Host name(s) or IP address(s) field.
+
+If a replica set contains more than one host, the Java driver discovers all hosts automatically. The driver connects to the next replica set in the list if the set you try to connect to is down.
+
+|Authentication database
+|Specify the authentication database.
+
+|Username
+|Specify the username required to access the database. If you want to use Kerberos authentication, enter the Kerberos principal in this field.
+
+|Password
+|Specify the password associated with the username. If you are using Kerberos authentication, you do not need to enter the password.
+
+|Authenticate Mechanism
+|Select the method used to verify the identity of users. The values are SCRAM-SHA-1 and MONGODB-CR.
+
+|Authenticate using Kerberos
+|Select to specify authentication using Kerberos.
+
+|Connection timeout
+|Specify (in milliseconds) how long to wait for a connection to a database before terminating the connection attempt. Leave blank to never terminate the connection.
+
+|Socket timeout
+|Specify (in milliseconds) how long to wait for a write operation before terminating the operation. Leave blank to never terminate the operation.
+
+|===
+
+=== Output options tab
+
+image::mongodb-output-screenshot-output-tab.png[]
+
+The Output options tab provides additional controls for inserting data into a MongoDB collection. If the specified collection does not exist, it is created before a document is inserted.
+
+Enter the following information in the fields on this tab:
+
+
+|===
+|Option |Description
+
+|Database
+|Specify the target database for the output. When a valid hostname and port has been set, you can click Get DBs to retrieve the names of existing databases within a selected database.
+
+|Collection
+|Specify the target collection for the output. When a valid hostname and port has been set, you can click Get Collections to retrieve the names of existing collections within a selected database. If the specified collection does not exist, it will be created before data is inserted.
+
+|Batch insert size
+|Specify the batch size for bulk insert operations. The default value is 100 rows.
+
+|Truncate collection
+|Select to delete existing data in the target collection before inserting new data.
+
+|Update
+|Sets the update write method for the specified database and collection.
+
+*The Upsert and Modifier update options are not available unless the Update field is selected.*
+
+|Upsert
+|Select to change the write method from insert to upsert. The upsert method replaces a matched record with an entire new record based on all the incoming fields specified in the Mongo document fields tab. A new record is created if match conditions fail for an update.
+
+|Multi-update
+|Select to update all matching documents for each update or upsert operation.
+
+|Modifier update
+|Select to enable modifiers ($ operators) to be used to modify individual fields within matching documents. All matching documents are updated when the Multi-update option is selected.
+
+To update more than one matching document, select Modifier update and Upsert. Selecting Modifier update, Upsert, and Multi-update applies updates to all matching documents, instead of just the first.
+
+|Write concern (w option)
+|Specify the minimum number of servers that must succeed for a write operation. The values are:
+
+-1 : Disables all acknowledgement of write operation errors
+
+0 (Zero) : Disables basic acknowledgment of write operations, but returns information about socket excepts and networking errors
+
+1 : Acknowledges write operations on the primary node
+
+>1 : Wait for successful write operations to the specified number of slaves, including the primary.
+
+Click *Get custom write concerns* to retrieve custom write concerns that you have stored in the repository.
+
+|w Timeout
+|Specify time (in milliseconds) to wait for a response to write operations before terminating the operation. Leave blank to never terminate.
+
+|Journaled writes
+|Select to set write operations to wait until the mongod (the primary daemon process for the MongoDB system) acknowledges the write operation and commits the data to the journal.
+
+|Read preference
+|Specify which node to read first:
+
+- ```Primary```
+
+- ```Primary preferred```
+
+- ```Secondary```
+
+- ```Secondary preferred```
+
+- ```Nearest```
+
+The default is ```Primary```.
+The Read preference is available when Modifier update is selected.
+
+|Number of retries for write operations
+|Specify the number of times that a write operation is attempted.
+
+|Delay, in seconds, between retry attempts
+|Specify the number of seconds to wait before the next retry.
+
+|===
+
+=== Mongo document fields tab
+
+image::mongodb-output-screenshot-fields-tab.png[]
+
+Use the Mongo document fields tab to define how field values coming into the transform are written to a Mongo document.
+The Modifier policy column controls when the execution of a modifier operation affects a particular field.
+You can use modifier policies when the data for one Mongo document is split over several incoming Hop rows or
+when it is not possible to execute different modifier operations that affect the same field simultaneously.
+
+There are 2 helper buttons you can use:
+* *Get fields* :Populates the Name column of the table with the names of the incoming fields.
+* *Preview document structure* : Opens a dialog showing the structure that will be written to MongoDB in JSON format.
+
+Enter the following information in the fields on this tab:
+
+
+|===
+|Column |Field Description
+
+|Name
+|Names of the incoming fields.
+
+|Mongo document path
+|The hierarchical path to fields in a document in dot notation format.
+
+|Use field name
+|Whether to use the incoming field name as the final entry in the path. The values are Y (use incoming field names) and N (do not use incoming field names). When set to Y, a preceding period (.) is assumed.
+
+|NULL values
+|Specifies whether to insert null values in the database. The values are:
+
+- Insert NULL
+
+- Ignore
+
+|JSON
+|Indicates the incoming value is a JSON document.
+
+|Match field for update
+|Indicates whether to match a field when performing an upsert operation. The first document in the collection that matches all fields tagged as Y in this column is replaced with the new document constructed with incoming values for all the defined field paths. If a matching document does not exist, then a new document is inserted into the collection.
+
+|Modifier operation
+|Specify in-place modifications of existing document fields.
+
+The modifiers are:
+
+- N/A
+
+- ```$set``` : Sets the value of a field.
+
+- ```$inc``` : Sets the value of a field if the field does not exist. If the field exists, increases (or decreases, with a negative value) the value of a field.
+
+- ```$push``` : Sets the value of a field if the field does not exist. If the field exists, appends the value of a field.
+
+- ```$``` : (the positional operator for matching inside of arrays).
+
+
+|Modifier policy
+|Controls when execution of a modifier operation affects a field. The values are:
+
+- ```Insert&Update``` : The operation is executed whether or not a match exists in the collection (default).
+The Insert&Update modifier policy (upsert) allows you to specify fields to match when performing an upsert operation.
+Upsert only replaces the first matching document.
+Modifier upserts can be used to replace certain field values in multiple documents.
+
+- ```Insert``` : The operation is executed on an insert only (when the match conditions fail)
+
+- ```Update``` : The operation is executed when match conditions succeed.
+
+|===
+
+==== Example
+
+Here is an example of how you can define a document structure with an arbitrary hierarchy. Use the following input data and document field definitions to create the example document structure in MongoDB:
+
+===== Input data
+
+[source]
+----
+first, last, address, age
+Bob, Jones ,"13 Bob Street", 34
+Fred, Flintstone, "10 Rock Street",50
+Zaphod, Beeblebrox, "Beetlejuice 1", 356
+Noddy,Puppet,"Noddy Land",5
+----
+
+===== Document field definitions
+
+
+|===
+|Name|Mongo document path|Use field name|NULL values|JSON|Match field for update|Modifier operation|Modifier policy
+
+|first
+|top1
+|Y
+|
+|N
+|N
+|N/A
+|Insert&Update
+
+|last
+|array[O]
+|Y
+|
+|N
+|N
+|N/A
+|Insert&Update
+
+|address
+|array[O]
+|Y
+|
+|N
+|N
+|N/A
+|Insert&Update
+
+|age
+|array[O]
+|Y
+|
+|N
+|N
+|N/A
+|Insert&Update
+
+|===
+
+====== Document structure
+
+[source]
+{
+  "top1" : {
+    "first" : "<string val>"
+   },
+  "array" : [ { "last" : "<string val>" , "address" : "<string val>"}],
+  "age" : "<integer val>"
+}
+
+=== Create/drop indexes tab
+
+image::mongodb-output-screenshot-indexes-tab.png[]
+
+Use the Create/drop indexes tab to create and drop indexes on one or more fields.
+Unless unique indexes are being used, MongoDB allows duplicate records to be inserted.
+Indexing is performed after all rows have been processed by the transform.
+
+You can use the *Show indexes button* to display a list of existing indexes.
+
+Enter the following information in the fields in this tab:
+
+
+|===
+|Field|Description
+
+|Index fields
+|Specify a single index (using one field) or a compound index (using multiple fields). Compound indexes are specified by a comma-separated list of paths. Use dot notation to specify the path to a field to use in the index. An optional direction indicator can be specified: 1 for ascending or -1 for descending.
+
+|Index opp
+|Specify whether to create or drop an index.
+
+|Unique
+|Specify whether to index only fields with unique values.
+
+|Sparse
+|Specify whether to index only documents that have the indexed field.
+
+|===
+
+==== Create/drop indexes example
+
+The following options defines the creation of a compound index of the "first" and "age" fields in ascending order:
+
+|===
+|Index fields|Index opp|Unique|Sparse
+
+|top1.first,age
+|Create
+|N
+|N
+
+|===
\ No newline at end of file