level-mongo
A basic mongo query interface for leveldb backend, future version will try to allow more advanced querying and partial & full updates
Install
$ npm install level-mongo --save
Usage
Valid options for constructor object exposed by module are shown below
options:
- collections - object with keys being name of collection (sublevel-level) to create
- key - unique identifier for each json record within collection
- location - string required to define base directory where leveldb is persisted on disk
- config - object with the following keys
- keyEncoding - string, valid options are one of 'hex', 'utf8', 'ascii', 'binary', 'base64', 'ucs2', 'utf16le'
- createIfMissing - boolean, default true. Create db if missing
- errorIfExists - boolean, default false. Error if db already exists
- compression - boolean, default true. Set to true to use snappy compression end for leveldb files
- cacheSize - number, default 8 x 1024 x 1024. LRU cache for leveldb
'use strict'; const LevelMongo = ; const db = config: keyEncoding: 'ascii' compression: false cacheSize: 4 * 1024 * 1024 collections: users: key: '_id' location: './db'; db;
Mongo methods partially implemented on each collection object
-
findOne - find record by key
-
find - return all records within collection
-
insertOne - insert record, unique key must be embedded within object being inserted
-
insertMany - batch insert operation
-
deleteOne - find and delete one record by key
-
deleteMany - deletes all records within collection
-
updateOne - updates one record by merging modifier object into original document
-
count - return number of records in collection
-
getKeys - returns all keys stored within collection
TODO
- improve indexing - in memory only? B-Tree?
- add schema parameter and validation option to define data shape
findOnefindManyinsertOneinsertManyupdateOne- updatedMany
count- allow querying by document properties as opposed to just be id
- abstract shared logic better
- add update operators
- $set - partially implemented
- $unset - partially implemented
- $inc
- $mul
- $rename
- $min
- $max
- $currentDate
- add array operators
- add find projection
- Return fields
- Exclude fields