summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/src/github.com/mongodb/mongo-tools/mongoimport/options.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/gotools/src/github.com/mongodb/mongo-tools/mongoimport/options.go')
-rw-r--r--src/mongo/gotools/src/github.com/mongodb/mongo-tools/mongoimport/options.go94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/mongoimport/options.go b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/mongoimport/options.go
new file mode 100644
index 00000000000..6c8cf0a0e2a
--- /dev/null
+++ b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/mongoimport/options.go
@@ -0,0 +1,94 @@
+// Copyright (C) MongoDB, Inc. 2014-present.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+package mongoimport
+
+var Usage = `<options> <file>
+
+Import CSV, TSV or JSON data into MongoDB. If no file is provided, mongoimport reads from stdin.
+
+See http://docs.mongodb.org/manual/reference/program/mongoimport/ for more information.`
+
+// InputOptions defines the set of options for reading input data.
+type InputOptions struct {
+ // Fields is an option to directly specify comma-separated fields to import to CSV.
+ Fields *string `long:"fields" value-name:"<field>[,<field>]*" short:"f" description:"comma separated list of fields, e.g. -f name,age"`
+
+ // FieldFile is a filename that refers to a list of fields to import, 1 per line.
+ FieldFile *string `long:"fieldFile" value-name:"<filename>" description:"file with field names - 1 per line"`
+
+ // Specifies the location and name of a file containing the data to import.
+ File string `long:"file" value-name:"<filename>" description:"file to import from; if not specified, stdin is used"`
+
+ // Treats the input source's first line as field list (csv and tsv only).
+ HeaderLine bool `long:"headerline" description:"use first line in input source as the field list (CSV and TSV only)"`
+
+ // Indicates that the underlying input source contains a single JSON array with the documents to import.
+ JSONArray bool `long:"jsonArray" description:"treat input source as a JSON array"`
+
+ // Indicates how to handle type coercion failures
+ ParseGrace string `long:"parseGrace" value-name:"<grace>" default:"stop" description:"controls behavior when type coercion fails - one of: autoCast, skipField, skipRow, stop (defaults to 'stop')"`
+
+ // Specifies the file type to import. The default format is JSON, but it’s possible to import CSV and TSV files.
+ Type string `long:"type" value-name:"<type>" default:"json" default-mask:"-" description:"input format to import: json, csv, or tsv (defaults to 'json')"`
+
+ // Indicates that field names include type descriptions
+ ColumnsHaveTypes bool `long:"columnsHaveTypes" description:"indicated that the field list (from --fields, --fieldsFile, or --headerline) specifies types; They must be in the form of '<colName>.<type>(<arg>)'. The type can be one of: auto, binary, bool, date, date_go, date_ms, date_oracle, double, int32, int64, string. For each of the date types, the argument is a datetime layout string. For the binary type, the argument can be one of: base32, base64, hex. All other types take an empty argument. Only valid for CSV and TSV imports. e.g. zipcode.string(), thumbnail.binary(base64)"`
+}
+
+// Name returns a description of the InputOptions struct.
+func (_ *InputOptions) Name() string {
+ return "input"
+}
+
+// IngestOptions defines the set of options for storing data.
+type IngestOptions struct {
+ // Drops target collection before importing.
+ Drop bool `long:"drop" description:"drop collection before inserting documents"`
+
+ // Ignores fields with empty values in CSV and TSV imports.
+ IgnoreBlanks bool `long:"ignoreBlanks" description:"ignore fields with empty values in CSV and TSV"`
+
+ // Indicates that documents will be inserted in the order of their appearance in the input source.
+ MaintainInsertionOrder bool `long:"maintainInsertionOrder" description:"insert documents in the order of their appearance in the input source"`
+
+ // Sets the number of insertion routines to use
+ NumInsertionWorkers int `short:"j" value-name:"<number>" long:"numInsertionWorkers" description:"number of insert operations to run concurrently (defaults to 1)" default:"1" default-mask:"-"`
+
+ // Forces mongoimport to halt the import operation at the first insert or upsert error.
+ StopOnError bool `long:"stopOnError" description:"stop importing at first insert/upsert error"`
+
+ // Modify the import process.
+ // Always insert the documents if they are new (do NOT match --upsertFields).
+ // For existing documents (match --upsertFields) in the database:
+ // "insert": Insert only, skip exisiting documents.
+ // "upsert": Insert new documents or replace existing ones.
+ // "merge": Insert new documents or modify existing ones; Preserve values in the database that are not overwritten.
+ Mode string `long:"mode" choice:"insert" choice:"upsert" choice:"merge" description:"insert: insert only. upsert: insert or replace existing documents. merge: insert or modify existing documents. defaults to insert"`
+
+ Upsert bool `long:"upsert" hidden:"true" description:"(deprecated; same as --mode=upsert) insert or update objects that already exist"`
+
+ // Specifies a list of fields for the query portion of the upsert; defaults to _id field.
+ UpsertFields string `long:"upsertFields" value-name:"<field>[,<field>]*" description:"comma-separated fields for the query part when --mode is set to upsert or merge"`
+
+ // Sets write concern level for write operations.
+ // By default mongoimport uses a write concern of 'majority'.
+ // Cannot be used simultaneously with write concern options in a URI.
+ WriteConcern string `long:"writeConcern" value-name:"<write-concern-specifier>" default-mask:"-" description:"write concern options e.g. --writeConcern majority, --writeConcern '{w: 3, wtimeout: 500, fsync: true, j: true}'"`
+
+ // Indicates that the server should bypass document validation on import.
+ BypassDocumentValidation bool `long:"bypassDocumentValidation" description:"bypass document validation"`
+
+ // Specifies the number of threads to use in processing data read from the input source
+ NumDecodingWorkers int `long:"numDecodingWorkers" default:"0" hidden:"true"`
+
+ BulkBufferSize int `long:"batchSize" default:"1000" hidden:"true"`
+}
+
+// Name returns a description of the IngestOptions struct.
+func (_ *IngestOptions) Name() string {
+ return "ingest"
+}