0.8.3 • Published 6 years ago
hexadb v0.8.3
Hexa DB
Install via npm
$ npm install --save hexadbPerformance
These are just very rough figures, obtained with the UWN dataset
on an i5-4278U @ 2.6 GHz, running io.js 2.2.1 on Windows 10.
Read
Read 128561 triples
Speed: 8000 triples/sec
Speed: 0.13 ms/tripleWrite
HDD:
Inserted 128561 triples
Speed: 2000 triples/sec
Speed: 0.50 ms/triple
SSD:
Inserted 128561 triples
Speed: 2308 triples/sec
Speed: 0.40 ms/tripleUsage
var level = require( 'level' )
var HexaDB = require( 'hexadb' )// Create a new instance
var db = new HexaDB( level( path ) )Triples
// Triples can be Arrays in (spo) order
var triple = [ 'subject', 'predicate', 'object' ]
// Or Objects, either with short or long keys
var triple = { s: 'something', p: 'else', o: 'is happening' }
// This is the form in which HexaDB returns them in results
var triple = {
subject: 'something',
predicate: 'else',
object: 'is happening',
}Variables
// A triple with variables can be used for
// search queries (also for get queries, but
// variables won't be bound)
var triple = {
// This is what a variable is made of
s: new HexaDB.Variable( 'varname' ),
p: 'hasStars',
// And this is the shortcut to it
o: db.v( 'shortvar' )
}Query Options
var options = {
offset: 0,
limit: -1,
fillCache: true,
reverse: false,
}API
Methods
Get
db.get( triple, options, function( error, result ) {
// ...
})Put
db.put( triple, function( error ) {
// ...
})Update
db.update( oldTriple, newTriple, function( error ) {
// ...
})Delete
db.delete( triple, function( error ) {
// ...
})Search
db.search( query, options, function( error, result ) {
// ...
})GetStream
var stream = db.getStream( pattern, options )PutStream
var stream = db.putStream()UpdateStream
var stream = db.updateStream()DeleteStream
var stream = db.deleteStream()SearchStream
var search = db.searchStream( query, options )