What's New in NosDB 2.0?

NosDB 2.0 contains new features, major stability enhancements and performance improvements. Latest features are in red. For a comprehensive list of all features in NosDB, please read NosDB Features.

Primary Key Support

NosDB now supports primary keys against each collection. This feature allows users to nominate field(s) for unique identification of the document as with primary keys in SQL.

Expiration Strategy

In NosDB, a user can configure an expiration strategy against a collection to automatically delete document(s) after a certain time period. Expirations can be based on intervals or absolute time.

Joins Query

NosDB provides the ability to use the standard SQL JOIN command to query documents from more than one collection. NosDB supports both equi and non-equi joins.

Sub Queries

NosDB supports sub-queries in the WHERE clause and returns an array of single attributes. These queries are only supported in select statements and can only be one level deep.

Data Encryption

NosDB provides built-in standards for database level document encryption. Various encryption providers are supported.

Multiple NIC Binding

NosDB supports utilization of multiple Network Interface Cards (NICs) to distribute the communications load for optimum performance. Dedicated NICs can be allocated for client-server communications and for cluster communications.

Custom Security Roles

NosDB provides the flexibility to define custom security roles providing various operational permissions to each user. These custom roles apply at the database level, meaning the custom role can only be created with permissions for a specific database.

Client API Changes

The Client API has been changed to accommodate the Primary Key feature provided by NosDB.

Node.js Client

A Node.js client SDK to connect to a NosDB database is now available.

Entity Framework Core

Entity Framework Core provider for NosDB is now available as a NuGet package.

Client Side Management API

A new static API in client NosDBManagement contains capabilities to perform management tasks such as starting and stopping shards and nodes, and importing/exporting of data.

Advanced Import and Export

A new and advanced Import/Export features some powerful capabilities that include the ability to specify the delimiters and text qualifier for csv. The import/export tools have also been updated. They now report the progress of the task by printing the count of lines imported/exported. Additionally, the Import/Export has been moved from being a collection specific API to NosDBManagement as a static API.

Client Side Cache Configuration

Users can now specify a cache's behavior, expiration type and interval through the configuration or the API. The cache behavior specifies what to cache i.e. the fetched documents, the result of queries or everything whereas the expiration type and the interval cause the cache to expire the cached items accordingly. The client side cache is now configurable though three different methods. There is the default configuration placed in app.config. Then there are CacheBehavior and ExpirationType properties on DBCollection. Finally, there is the individual overloads of APIs (GetDocuments and ExecuteReader) introduced with cache parameters.

Client API Changes

A few more overloads of different methods are introduced to give more control over caching. A few overloads are removed.

Trackable Aggregations

The ExecuteAggregator in the Client API now returns an ITrackableObject which essentially tracks the progress of the aggregation task and notifies the client when the task is complete.