blob: 9de83c3358fe5c5f1a5149fcf03e030c0a1461f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
package mongodump
import (
"fmt"
"io/ioutil"
)
var Usage = `<options>
Export the content of a running server into .bson files.
Specify a database with -d and a collection with -c to only dump that database or collection.
See http://docs.mongodb.org/manual/reference/program/mongodump/ for more information.`
// InputOptions defines the set of options to use in retrieving data from the server.
type InputOptions struct {
Query string `long:"query" short:"q" description:"query filter, as a JSON string, e.g., '{x:{$gt:1}}'"`
QueryFile string `long:"queryFile" description:"path to a file containing a query filter (JSON)"`
ReadPreference string `long:"readPreference" value-name:"<string>|<json>" description:"specify either a preference name or a preference json object"`
TableScan bool `long:"forceTableScan" description:"force a table scan"`
}
// Name returns a human-readable group name for input options.
func (*InputOptions) Name() string {
return "query"
}
func (inputOptions *InputOptions) HasQuery() bool {
return inputOptions.Query != "" || inputOptions.QueryFile != ""
}
func (inputOptions *InputOptions) GetQuery() ([]byte, error) {
if inputOptions.Query != "" {
return []byte(inputOptions.Query), nil
} else if inputOptions.QueryFile != "" {
content, err := ioutil.ReadFile(inputOptions.QueryFile)
if err != nil {
err = fmt.Errorf("error reading queryFile: %s", err)
}
return content, err
}
panic("GetQuery can return valid values only for query or queryFile input")
}
// OutputOptions defines the set of options for writing dump data.
type OutputOptions struct {
Out string `long:"out" value-name:"<directory-path>" short:"o" description:"output directory, or '-' for stdout (defaults to 'dump')"`
Gzip bool `long:"gzip" description:"compress archive our collection output with Gzip"`
Repair bool `long:"repair" description:"try to recover documents from damaged data files (not supported by all storage engines)"`
Oplog bool `long:"oplog" description:"use oplog for taking a point-in-time snapshot"`
Archive string `long:"archive" value-name:"<file-path>" optional:"true" optional-value:"-" description:"dump as an archive to the specified path. If flag is specified without a value, archive is written to stdout"`
DumpDBUsersAndRoles bool `long:"dumpDbUsersAndRoles" description:"dump user and role definitions for the specified database"`
ExcludedCollections []string `long:"excludeCollection" value-name:"<collection-name>" description:"collection to exclude from the dump (may be specified multiple times to exclude additional collections)"`
ExcludedCollectionPrefixes []string `long:"excludeCollectionsWithPrefix" value-name:"<collection-prefix>" description:"exclude all collections from the dump that have the given prefix (may be specified multiple times to exclude additional prefixes)"`
NumParallelCollections int `long:"numParallelCollections" short:"j" description:"number of collections to dump in parallel (4 by default)" default:"4" default-mask:"-"`
ViewsAsCollections bool `long:"viewsAsCollections" description:"dump views as normal collections with their produced data, omitting standard collections"`
}
// Name returns a human-readable group name for output options.
func (*OutputOptions) Name() string {
return "output"
}
|