0.7.2 • Published 6 years ago

nqm-iot-database-utils v0.7.2

Weekly downloads
2
License
GPL-3.0-or-later
Repository
github
Last release
6 years ago

nqm-iot-database-utils npm versionBuild Status

nquiringminds IoT Database utilities (sqlite implementation for now)

Install

npm install nqm-iot-database-utils

Test

npm test

Build Documentation

npm run docs

nodejs

const sqliteUtils = require("nqm-iot-database-utils");

Usage

Example 1

The below example will do the following steps: 1. Create a sqlite database in memory with openDatabase 2. Create a dataset with two fields with createDataset 3. Add 100 documents to the dataset with addData 4. Retrieve a list documents for a given filter with getData

"use strict";

const sqliteUtils = require("nqm-iot-database-utils");
const TDX_SCHEMA = {
  "schema": {
    "dataSchema": {
      "prop1": {
        "__tdxType": ["number"],
      },
      "prop2": {
        "__tdxType": ["number"],
      },
    },
    "uniqueIndex": [],
  },
};

let dbIter;
const testData = [];

sqliteUtils.openDatabase("", "memory", "w+")
    .then((db) => {
      dbIter = db
      return sqliteUtils.createDataset(db, TDX_SCHEMA);
    })
    .then(() => {
      for (let idx = 0; idx < 100; idx++) {
        testData.push({
          prop1: idx,
          prop2: 100 - idx - 1,
        });
      }
      return sqliteUtils.addData(dbIter, testData);
    })
    .then(() => {
      return sqliteUtils.getData(dbIter,
        {$and: [{$or: [{prop1: {$gte: 2, $lte: 5}}, {prop1: {$gte: 92}}]}, {prop2: {$lte: 10}}]},
        null,
        {
          sort: {
            prop1: 1,
            prop2: -1,
          },
        });
    })
    .then((result) => {
      console.log(result);
    });

Example 2

The below example will add an ndarray to the dataset: 1. Create a sqlite database in memory with openDatabase 2. Create a dataset with two fields with createDataset 3. Add 1 documents to the dataset with addData 4. Retrieve the documents with getData

"use strict";

const sqliteUtils = require("nqm-iot-database-utils");
const TDX_SCHEMA = {
  "schema": {
    "dataSchema": {
      "timestamp": {
        "__tdxType": ["number"],
      },
      "array": {
        "__tdxType": ["ndarray"],
      },
    },
    "uniqueIndex": [],
  },
};

let dbIter;
const testData = [];

sqliteUtils.openDatabase("", "memory", "w+")
    .then((db) => {
      dbIter = db
      return sqliteUtils.createDataset(db, TDX_SCHEMA);
    })
    .then(() => {
      const array = new Float64Array(23 * 34);
      array.fill(-1.8934579345);
      let arrayData = sqliteUtils.getNdarrayMeta(Buffer.from(array.buffer), "float64", [23, 34]);
      return sqliteUtils.addData(dbIter, {timestamp: 123456789, array: arrayData});
    })
    .then(() => {
      return sqliteUtils.getData(dbIter, null, null, null);
    })
    .then((result) => {
      const row = result.data[0];
      const floatBuffer = sqliteUtils.getTypedArrayFromBuffer(row.array.data, "float64");
      console.log(floatBuffer);
    });

API

0.7.2

6 years ago

0.7.1

6 years ago

0.7.0

6 years ago

0.6.4

6 years ago

0.6.3

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago

0.5.3

6 years ago

0.5.2

6 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.4

7 years ago

0.4.3

7 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.0

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago