new Base(paramObj)

Base

Example

// import qm module
var qm = require('qminer');
// using a constructor, in open mode
var base = new qm.Base({ mode: 'open' });
base.close();

Parameter

Name Type Optional Description

paramObj

module:qm~BaseConstructorParam

 

The base constructor parameter object.

Methods

close() → null

Closes the database.

Example

// import qm module
var qm = require('qminer');
// using a constructor, in open mode
var base = new qm.Base({ mode: 'open' });
// close the database
base.close();
Returns

null No value is returned.

createStore(storeDef[, storeSizeInMB]) → (module:qm.Store or Array of module:qm.Store)

Creates a new store.

Example

// import qm module
var qm = require('qminer');
// create a new base with one store
var base = new qm.Base({
   mode: "createClean",
   schema: [
   {
       name: "Superheroes",
       fields: [
           { name: "Name", type: "string" },
           { name: "Superpowers", type: "string_v" },
           { name: "YearsActive", type: "int" }
       ]
   }]
});
// create a new store called "Supervillains" in the base
base.createStore({
   name: "Supervillians",
   fields: [
       { name: "Name", type: "string" },
       { name: "Superpowers", type: "string_v" },
       { name: "YearsActive", type: "int" }
   ]
});
// create two new stores called "Cities" and "Leagues"
base.createStore([
   {
       name: "Cities",
       fields: [
           { name: "Name", type: "string", primary: true },
           { name: "Population", type: "int" }
       ]
   },
   {
       name: "Leagues",
       fields: [
           { name: "Name", type: "string" },
           { name: "Members", type: "string_v" }
       ]
   }
]);
base.close();

Parameters

Name Type Optional Description

storeDef

Array of module:qm~SchemaDef

 

The definition of the store(s).

storeSizeInMB

number

Yes

The reserved size of the store(s).

Defaults to 1024.

Returns

(module:qm.Store or Array of module:qm.Store) - Returns a store or an array of stores (if the schema definition was an array).

garbageCollect()

Calls qminer garbage collector to remove records outside time windows. For application example see module:qm~SchemaTimeWindowDef.

getStats() → module:qm~PerformanceStatBase

Retrieves performance statistics for qminer.

Example

// import qm module
var qm = require('qminer');
// create a base with two stores
var base = new qm.Base({
   mode: "createClean",
   schema: [
   {
       name: "KwikEMart",
       fields: [
           { name: "Worker", type: "string" },
           { name: "Groceries", type: "string_v" }
       ]
   },
   {
       name: "NuclearPowerplant",
       fields: [
           { name: "Owner", type: "string" },
           { name: "NumberOfAccidents", type: "int" },
           { name: "Workers", type: "string_v" }
       ]
   }]
});
// call the garbage collector
base.getStats();
base.close();
Returns

module:qm~PerformanceStatBase The performance statistics.

getStoreList() → Array of object

Returns a list of store descriptors.

Example

// import qm module
var qm = require('qminer');
// create a base with two stores
var base = new qm.Base({
   mode: "createClean",
   schema: [
   {
       name: "KwikEMart",
       fields: [
           { name: "Worker", type: "string" },
           { name: "Groceries", type: "string_v" }
       ]
   },
   {
       name: "NuclearPowerplant",
       fields: [
           { name: "Owner", type: "string" },
           { name: "NumberOfAccidents", type: "int" },
           { name: "Workers", type: "string_v" }
       ]
   }]
});
// get the list of store descriptors
var exists = base.getStoreList();
base.close();
Returns

Array of object An array of store descriptors. The store descriptor storeDesc contains the properties:
1. storeDesc.storeId - The store ID. Type number.
2. storeDesc.storeName - Store name. Type string.
3. storeDesc.storeRecords - Number of records in store. Type number.
4. storeDesc.fields - The store field schema. Type Array of module:qm.SchemaFieldDef.
5. storeDesc.keys - The store key schema. Type Array of module:qm.SchemaKeyDef.
6. storeDesc.joins - The store join schema. Type Array of module:qm.SchemaJoinDef.

getStreamAggr(saName) → module:qm.StreamAggr

Gets the stream aggregate of the given name.

Example

// import qm module
var qm = require('qminer');
// create a simple base containing one store
var base = new qm.Base({
   mode: "createClean",
   schema: [{
       name: "People",
       fields: [
           { name: "Name", type: "string" },
           { name: "Gendre", type: "string" },
       ]
   },
   {
       name: "Laser",
       fields: [
           { name: "Time", type: "datetime" },
           { name: "WaveLength", type: "float" }
       ]
   }]
});

// create a new time series window buffer stream aggregator for 'Laser' store (with the JSON object)
var wavelength = {
    name: "WaveLengthLaser",
    type: "timeSeriesWinBuf",
    store: "Laser",
    timestamp: "Time",
    value: "WaveLength",
    winsize: 10000
}
var sa = base.store("Laser").addStreamAggr(wavelength);
// get the stream aggregate with the name 'Laser'
var streamAggr = base.getStreamAggr('WaveLengthLaser');
base.close();

Parameter

Name Type Optional Description

saName

string

 

The name of the stream aggregate.

Returns

module:qm.StreamAggr The stream aggregate whose name is saName.

getStreamAggrNames() → Array of string

Gets an array of the stream aggregate names in the base.

Example

// import qm module
var qm = require('qminer');
// create a simple base containing one store
var base = new qm.Base({
   mode: "createClean",
   schema: [{
       name: "People",
       fields: [
           { name: "Name", type: "string" },
           { name: "Gendre", type: "string" },
       ]
   },
   {
       name: "Laser",
       fields: [
           { name: "Time", type: "datetime" },
           { name: "WaveLength", type: "float" }
       ]
   }]
});

// create a new stream aggregator for 'People' store, get the length of the record name (with the function object)
var aggr = new qm.StreamAggr(base, new function () {
   var length = 0;
   this.name = 'nameLength',
   this.onAdd = function (rec) {
       length = rec.Name.length;
   };
   this.saveJson = function (limit) {
       return { val: length };
   }
}, "People");

// create a new time series window buffer stream aggregator for 'Laser' store (with the JSON object)
var wavelength = {
    name: "WaveLengthLaser",
    type: "timeSeriesWinBuf",
    store: "Laser",
    timestamp: "Time",
    value: "WaveLength",
    winsize: 10000
}
var sa = base.store("Laser").addStreamAggr(wavelength);
// get the stream aggregates names
var streamAggrNames = base.getStreamAggrNames();
base.close();
Returns

Array of string The array containing the stream aggregate names.

getStreamAggrStats()

Retrieves performance statistics for stream aggregates.

isClosed() → Boolean

Checks if the base is closed.

Example

// import qm module
var qm = require('qminer');
// using a constructor, in open mode
var base = new qm.Base({ mode: 'open' });
// check if the base is closed
var closed = base.isClosed();
// close the database
base.close();
Returns

Boolean Returns true, if the base is closed.

isStore(name) → boolean

Checks if there is a store.

Example

// import qm module
var qm = require('qminer');
// create a base with two stores
var base = new qm.Base({
   mode: "createClean",
   schema: [
   {
       name: "KwikEMart",
       fields: [
           { name: "Worker", type: "string" },
           { name: "Groceries", type: "string_v" }
       ]
   },
   {
       name: "NuclearPowerplant",
       fields: [
           { name: "Owner", type: "string" },
           { name: "NumberOfAccidents", type: "int" },
           { name: "Workers", type: "string_v" }
       ]
   }]
});
// get the "KwikEMart" store
var exists = base.isStore("KwikEMart");    // true
base.close();

Parameter

Name Type Optional Description

name

string

 

Store name.

Returns

boolean True, if there exists a store with the store name. Otherwise, false.

loadCSV(opts[, callback])

Loads the store from a CSV file.

Parameters

Name Type Optional Description

opts

module:qm~BaseLoadCSVParam

 

Options object.

callback

function()

Yes

Callback function, called on errors and when the procedure finishes.

partialFlush([window]) → number

Base saves dirty data given some time window.

Example

// import qm module
var qm = require('qminer');
// create a base with two stores
var base = new qm.Base({
   mode: "createClean",
   schema: [
   {
       name: "KwikEMart",
       fields: [
           { name: "Worker", type: "string" },
           { name: "Groceries", type: "string_v" }
       ]
   },
   {
       name: "NuclearPowerplant",
       fields: [
           { name: "Owner", type: "string" },
           { name: "NumberOfAccidents", type: "int" },
           { name: "Workers", type: "string_v" }
       ]
   }]
});
// call the garbage collector
base.partialFlush();
base.close();

Parameter

Name Type Optional Description

window

number

Yes

Length of available time window in miliseconds.

Defaults to 500.

Returns

number Number of records it flushed.

Makes a query search and returns a record set.

Parameter

Name Type Optional Description

query

module:qm~QueryObject

 

Query language JSON object.

Returns

module:qm.RecordSet The record set that matches the search criterion.

store(name) → module:qm.Store

Returns the store with the specified name.

Example

// import qm module
var qm = require('qminer');
// create a base with two stores
var base = new qm.Base({
   mode: "createClean",
   schema: [
   {
       name: "KwikEMart",
       fields: [
           { name: "Worker", type: "string" },
           { name: "Groceries", type: "string_v" }
       ]
   },
   {
       name: "NuclearPowerplant",
       fields: [
           { name: "Owner", type: "string" },
           { name: "NumberOfAccidents", type: "int" },
           { name: "Workers", type: "string_v" }
       ]
   }]
});
// get the "KwikEMart" store
var store = base.store("KwikEMart"); // returns the store with the name "KwikEMart"
base.close();

Parameter

Name Type Optional Description

name

string

 

Store name.

Returns

module:qm.Store The store.