# @frappy/js-mongo-dataset-store

> Dataset Storage for NodeJS using MongoDB

Latest version **1.3.2** (published 2021-02-14) · 0 weekly downloads

## Install

```sh
npm install @frappy/js-mongo-dataset-store
pnpm add @frappy/js-mongo-dataset-store
yarn add @frappy/js-mongo-dataset-store
bun add @frappy/js-mongo-dataset-store
```

## Health

**Score 5/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score; declining downloads.

## Facts

| | |
|---|---|
| Version | 1.3.2 |
| Published | 2021-02-14 |
| First published | 2021-02-14 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 23.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Peter Ilfrich |
| Maintainers | ilfrich |

## Links

- npm: https://www.npmjs.com/package/@frappy/js-mongo-dataset-store
- Repository: https://github.com/ilfrich/js-mongo-dataset-store
- Homepage: https://github.com/ilfrich/js-mongo-dataset-store#readme
- Issues: https://github.com/ilfrich/js-mongo-dataset-store/issues
- npm.io page: https://npm.io/package/@frappy/js-mongo-dataset-store

## Dependencies (2)

- [mongodb](https://npm.io/package/mongodb.md) ^3.5.5
- [@frappy/js-mongo-store](https://npm.io/package/@frappy/js-mongo-store.md) ^1.1.0

## Recent versions

- 1.3.2 (latest) — 2021-02-14

## README

# MongoDB Data Set Stores for NodeJS

Dataset Storage for NodeJS using MongoDB

## Usage

```javascript
import { DataSetStore } from "@frappy/js-mongo-dataset-store"
import mongodb from "mongodb"

const MONGO_URL = process.env.MONGO_URL || "mongodb://localhost:27017"
// create mongoDB connection
mongodb.MongoClient.connect(MONGO_URL, {
    useNewUrlParser: true,
}).then(client => {
    // initialise store
    const dataSetStore = new DataSetStore(client, "myDatabaseName", "dataSets")
    
    dataSetStore.findByAssignmentAndType("group1", "forecastInput").then(dataSets => { 
        // list of data sets (meta info) matching the requested assignment type
        dataSets.forEach(dataSet => {
            console.log(dataSet.label, dataSet.payload)
        })  
    })
})
```

## Methods

- `findByAssignment(assignmentId)` - returns a list of data sets (meta only) assigned to the provided reference.
- `findByType(dataType)` - returns a list of all data sets (meta only) of a specific type (e.g. `TIME_SERIES` or 
 `IMAGE`)
- `findByAssignmentType(assignmentId, assignmentType)` - returns a list of data sets (meta only) of a given type within
 a specific reference (e.g. `findByAssignmentAndType("demo1", "weather_data")` would give you all weather data sets 
 uploaded and assigned to "demo1")
- `findByAssignmentAndType(assignmentId, dataType)` - returns a list of all data sets (meta only) matching a specific 
 type (e.g. `TIME_SERIES` or `IMAGE`) that are assigned to a specific reference (`assignmentId`).
- `getAllMetaData(paging = { pageSize: 50, page: 0 })` - returns all data set (meta only) with the option to provide a
 paging parameter. By default retrieves the first 50 data sets.
- `getMeta(docId)` - retrieves just the meta information (no payload) of a specific data set.
- `updateDataSet(docId, update)` - updates information of a data set. The `docId` specifies which document to update. 
 The update itself is a JSON object that can contain root-level keys of the data structure to update (`assignments`, 
 `labels`, `relations`) and also allows to update/overwrite the `payload` keys, by providing `payload: { ... }` in the
 `update` parameter object. This method will ensure that keys *not* mentioned in the payload, *won't* be overwritten. 
- `updateTargetFile(docId, targetPath, mimeType)` - more or less an internal method to update the `payload.targetFile`
 of an uploaded image or binary, since the final path is only known after the creation of the document as it includes 
 the `_id` as the file name.

---
_Source: https://npm.io/package/@frappy/js-mongo-dataset-store · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
