@gribnoysup/compass-import-export
v6.0.0
Published
Compass Import/Export Plugin
Readme
Compass Import/Export Plugin 
mongoimport and mongoexport functionality in Compass.
Development
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 startYou can also utilize Storybook when developing components:
npm run storybook;Testing
npm testImport Test Cases
See files in the ./test directory.
TODO/Ideas
- [x] Import: Move away from
state.fieldsbeing 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. - [x] 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
_idsuch asbusiness_idin the yelp dataset - [ ] Import: Option for path to pass to JSONStream for nested docs (e.g.
resultsarray when fetching JSON from a rest api) - [ ] Import: New Option: Paste URL to fetch from
- [ ] Import: Preview Table: use
react-tableandreact-windowfor 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/utilsthat 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
License
Apache 2.0
