mongoimport and mongoexport functionality in Compass.
After cloning this repository and running npm install
, you can try this plugin with a real MongoDB Server in electron by running:
DEBUG=mongo* npm start
You can also utilize Storybook when developing components:
npm run storybook;
npm test
See files in the ./test
directory.
- Import: Move away from
state.fields
being array of objects to using all array's of strings. For now, there is some duplication of fields+transforms+excludes we'll come back to and fixup. - import-apply-type-and-projection supports nested dotnotation and only uses
state.importData.transforms
- Import and Export: New Option: If you need to specify extended-json legacy spec
- Import: bson-csv: support dotnotation expanded from
.
.<bson_type>() caster like mongoimport does today - Import: Preview Table: Use highlight.js, mongodb-ace-mode, or something so the text style of the value within a cell matches its destination type
- Export: Use electron add to destination file to recent documents
- Import and Export: Show system notification when operation completes. like dropbox screenshot message. toast "XX/XX documents successfully"
- Import: expose finer-grained bulk op results in progress -> "View Import Log File"
- Import: New Option: drop target collection before import
- Import: New Option: define import mode: insert, upsert, merge
- Import: New Option: specify a different path for
_id
such asbusiness_id
in the yelp dataset - Import: Option for path to pass to JSONStream for nested docs (e.g.
results
array when fetching JSON from a rest api) - Import: New Option: Paste URL to fetch from
- Import: Preview Table: use
react-table
andreact-window
for fixed headers and more # of documents to preview - Import: Preview Table: Allow transpose on fields/values so all type selection and projection is in a single left aligned list
- Import: Multi file import via archive (supports gzip/zip/bzip2/etc.)
- Import: Use schema parser or something later to handle complete tabular renderings of sparse/polymorphic
- Import: Improve import-size-guesstimator
- Import: guess delimiter in
src/utils/detect-import-file.js
- Import and Export: Extract anything from
./src/utils
that could live as standalone modules so other things like say a cli or a different platform could reuse compass' import/export business logic and perf. - Refactor src/modules/ so import and export reuse a common base
Apache 2.0