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.
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.
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.
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.
NosDB provides built-in standards for database level document encryption. Various encryption providers are supported.
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.
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.
The Client API has been changed to accommodate the Primary Key feature provided by NosDB.
A Node.js client SDK to connect to a NosDB database is now available.
Entity Framework Core provider for NosDB is now available as a NuGet package.
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.
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.
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.
A few more overloads of different methods are introduced to give more control over caching. A few overloads are removed.
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.