An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.
Go to file
2016-09-12 23:48:58 +02:00
dist improve README 2016-09-12 22:11:17 +02:00
docs improve README 2016-09-12 22:11:17 +02:00
test improve README 2016-09-12 22:11:17 +02:00
ts update README.md 2016-09-12 23:47:57 +02:00
.gitignore add tests and gitlab ci 2016-09-11 16:22:53 +02:00
.gitlab-ci.yml fix gitlab ci 2016-09-11 16:26:09 +02:00
package.json 1.0.8 2016-09-12 23:48:02 +02:00
README.md imrove README 2016-09-12 23:48:58 +02:00
tslint.json add tests and gitlab ci 2016-09-11 16:22:53 +02:00

smartdata

smartdata is a ODM that adheres to TypeScript practices and uses classes to organize data. It uses MongoDB as persistent storage.

Intention

There are many ODMs out there, however when we searched for a ODM that uses TypeScript, acts smart while still embracing an easy the NoSQL idea we didn't find a matching solution. This is why we started smartdata

How MongoDB terms map to smartdata classes

MongoDB term smartdata class
Database smartdata.Db
Collection smartdata.DbCollection
Document smartdata.DbDoc

class Db

represents a Database. Naturally it has .connect() etc. methods on it. Since it is a class you can have multiple DBs defined.

import * as smartdata from 'smartdata'

let myDb1 = new smartdata.Db('someConnectionUrl')
let myDb2 = new smartdata.Db('someConnectionUrl')

myDb1.connect()
myDb2.connect()

class Collection

represents a collection of objects. A collection is defined by the object class (that is extending smartdata.dbdoc) it respresents

So to get to get access to a specific collection you document

class myObject extends DbDoc {
    property1:string
    property2:number
    constructor(optionsArg:{
        queryArg?:any,
        dataArg?:{
            property1:string,
            property2:string
        }
    }) {
        super(this,optionsArg)
    }
} 
let myCollection = myDb1.getCollection(myObject)

Alert: You NEVER instantiate a collection. This is done for you!!!

class DbDoc

represents a individual document in a collection.

npm