NoSQLBooster 6.0 Released!

Today, we are incredibly pleased to announce the release of NoSQLBooster 6.0. It brings many new features to improve the productivity of MongoDB'ers, tasks and task scheduler, command-line interface, Golang, PHP and Ruby added to query code, ESNext features optional chaining and nullish coalescing, mark types with colors, greatly improved table view, one-click projection, add date time to export file path, favorites feature and more.

If you want to try NoSQLBooster 6.0 out now, you can get it from the following link.

NoSQLBooster 6.0 Download Link

The product will automatically enter the 30-day trial mode after a successful installation. At the end of the 30-day trial period, the product becomes a free edition. The free version is free for personal/commercial use but with limited functions.

The following figure shows the main interface of version 6.0.

Main interface

Let's dive in and get an overview of what's coming in NoSQLBooster 6.0!

Although we are showing screenshots of NoSQLBooster for Windows, all these new features are available for Mac OS X and Linux as well.

What's new?

Tasks and task scheduler

NoSQLBooster tasks allow you to define, save, and perform different tasks, including query scripts, imports, exports, data migration, and backup and restoration. Task Scheduler lets you define tasks that execute on a one-time basis or a recurring schedule that you specify. It supports tasks that perform daily, weekly, or monthly, and you can choose the day(s) of the week or month when you want each task to execute.

NoSQLBooster does not need to run at the scheduled time to run any scheduled tasks. In windows systems, NoSQLBooster uses the Windows Task Scheduler to perform routine tasks automatically. While in MacOS and ubuntu, cron is used to manage and execute scheduled tasks.

NoSQLBooster supports the following types of tasks.

  • Run MongoDB Script File (As NoSQLBooster allows you to use 3rd party node modules, the functionality of this script is extensible and flexible)
  • Import from JSON and BSON files...
  • Import Tables from MySQL, PostgreSQL, and MSSQL...
  • Restore MongoDB Databases (mongorestore)
  • Export Collection/Query to JSON, BSON, CSV|TSV and SQL
  • Export Database to JSON, BSON, CSV|TSV, and SQL
  • Backup MongoDB Databases (mongodump)

The task view allows you to view all scheduled tasks at a glance easily.

Tasks - new task

Tasks - scheduler

For Windows User, You can find the tasks generated by NoSQLBooster in the URI "Task Scheduler(local)\Task Scheduler Library\NoSQLBooster\MongoDB\".
Tasks - windows task scheduler

NoSQLBooster command-line interface (nbcli)

This nbcli is a simple command-line interface for NoSQLBooster. It allows you to run javascript or SQL query statement, javascript file, and NoSQLBooster tasks in terminal or integrate NoSQLBooster into your continuous development. This nbcli supports all NoSQLBooster shell extensions, SQL Query, fluent Query API, 3rd party library (lodash, momentjs ...) and Node.js modules installed under user data directory (Menu-> Help-> Open User Data directory)

To start nbcli, click "Menu -> Tools -> Open NoSQLBooster Command Line ...", you can use "Menu -> Options -> Add Command Line to path..." to add nbcli to user's PATH.

To be clear, nbcli is not a REPL (Read Evaluate Print Loop) tool.

Read More About It

NoSQLBooster Command Line

ESNext features, optional chaining, and nullish coalescing

NoSQLBooster embraces the new features of ESNext. Version 6.0 adds two new features, optional chaining and nullish coalescing, which are very handy.

Optional chaining

The optional chaining (?.) lets us write code where we can immediately stop running some expressions if we run into a null or undefined. You might find yourself using ?. to replace a lot of code that performs repetitive nullish checks using the && operator.

// Before
if (foo && foo.bar && foo.bar.baz) {
  // ...
}

// After-ish
if (foo?.bar?.baz) {
  // ...
}

Nullish coalescing

The nullish coalescing operator (??) is a logical operator that returns its right-hand side operand when its left-hand side operand is null or undefined and otherwise returns its left-hand side operand.

The ?? operator can replace uses of || when trying to use a default value.


const foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"

const baz = 0 ?? 42;
console.log(baz);
// expected output: 0

Golang, PHP and Ruby added to query code converter

The MongoDB query converter now supports Golang, PHP, and Ruby in addition to Node.js, Java, Python, C #, and mongo shell languages.

Golang, PHP, and Ruby added to query code

Enhanced data view

Mark types with colors

Give different colors to different types, making the data easier to identify and view. If this looks a little too flashy, you can use the option "Menu -> Options -> Output Panel -> Mark Types with Colors" to turn it off.

Mark types with colors

Greatly improved table view

Table-View | In-place edit

In addition to the tree open view, you can now double-click to open the edit-in-place text control to edit and submit content in the table view.

Edit-in-place table view

Table-View | Column chooser

The newly designed column chooser can easily select fields or embedded fields. You can also see that more functions have been added in the header context menu of the table.

After selecting the fields, you can also use the right-click menu to save the query results view as a MongoDB read-only view (Include Visible Columns or Exclude Hidden Columns)

column-chooser

Table-View | Column-moving and freeze columns

To move a column, just drag the column's header to the desired position. You can also drag the column to the frozen zone to freeze some fields so that they do not scroll out of view. The _ id field is located in the frozen zone by default.

Column-moving and freeze columns

One-click projection and One-click sorting

In addition to one-click filtering and one-click grouping, one-click projection and one-click sorting have been added in version 6. One-click projection allows you to easily select several fields in the results view and form a new query. One-click sorting can re-sort the chosen fields in ascending and descending order. All one-click features support embedded fields.

One-click Features

Tooltip Improvements

Informative tooltips are getting better now. You can press the "p" key to view JSON array and objects, multiple lines of text, URL pages, pictures, and geographic location information.

Press "p" to view object

Favorites Feature

The favorites feature is used to tag database objects and bookmark scripts, providing you with one-click access. Favorites can be accessed through the favorites item in the main menu.

  • To add a database object to the favorites, select the item in the Databases object tree, click Menu->Favorites, or use the "Add to Favorites" right-click menu operation for the database object.
  • To add a query script to the favorites, please double-click to open this script from the "My Queries" tree, then click Menu->Favorites to bookmark query script or use the "Add to Favorites" right-click menu operation for the query script from the "My Queries" tree

Add database object to favorites

SQL query improvements

In this version, we removed the restrictions on SQL JOIN and subquery statements in the free version and added a dozen SQL snippets. For example, SQL-like, SQL-GroupBy, SQL-DateRange, SQL-Between, etc.

SQL Snippets

Other Notable Improvements

Add date time to export file path

When exporting MongoDB collection or backing up the database regularly, you may want to add the DateTime to the export file path (e.g.,/exports/backup_yyyy_mm_dd.csv) ). The DateTime variable (e.g., %%YYYY_MM_DD%%%) has been added to NoSQLBooster 6, so you can easily append DateTime to the export path. NoSQLBooster uses moment.js to format date and time. For more formatting, see the moment.js website.

Append Date to export path

Export non-cursor objects

NoSQLBooster V6 allows you to export non-cursor data, includes normal javascript arrays or objects. e.g: db.xxx.find().toArray() or db.xxx.findOne().

Save/Restore Workspace Improvements

In previous versions, only one connection and one tab could be restored. There is no such restriction in V6. NoSQLBooster V6 can ultimately save and restore the working space, including all connections and tabs.

New AggregationCursor.pushStage method

NoSQLBooster supports mongoose-like fluent query builder API that enables you to build up a query using chaining syntax. All aggregation stage operators in the current version of MongoDB (4.2) have corresponding chainable methods. Considering that MongoDB continues to add aggregation stage operators, we have added this "pushStage" method in this release to be compatible with the possible future stage operators.

db.movieDetails.aggregate()
    .match({type:"movie"})
    .pushStage({$limit:5}) //pushStage() method appends the given stage in the last of the pipelines

//equal to 
db.movieDetails.aggregate()
    .match({type:"movie"})
    .limit(5)

//or, the equivalent MongoDB JSON-like Query 
db.movieDetails.aggregate([
  { $match: {type:"movie"}}, 
  {$limit: 5}
])

Minor improvements and bugfix

  • Upgrade MongoDB Node.js driver to 3.5
  • Upgrade major dependencies electron to 7.x, Chrome v78, Node v12.8, and V8 v7.8
  • Support Ed25519 keys for SSH tunnels authentication
  • Support MySQL 8 default authentication (caching_sha2_password)
  • In the tree/table view, press "CMD+PageDown" to go to the next page and "CMD+PageUp" to go to the previous page
  • Add "Tools" item to the main menu which is quickly linked to a bunch of built-in tools

Patch Releases

Version 6.0.1-6.0.2

Bugfix

  • Added, an option to adjust the maximum number of sub-columns allowed by the column group in the table view, and when the subfield exceeds the threshold, it will be displayed as a normal object field. Menu Options-> Output Panel -> Table View: Max Column Len of the Column Group.
  • Improved, prompts the user to save unsaved tab contents when closing the tab. Menu Options ->Warning Message -> Prompt User to Save Unsaved Tab Content.
  • Fixed, an error in parsing MongoDB+Srv URI authSource default values.
  • Fixed, SQL parsing error when SQL like included the special character "/".
  • Fixed, a bug that caused the export dialog to be obscured and inoperable when the main window was too small.

Version 6.0.3

Bugfix

  • Fixed, When the mongo tools path contains special character "space", the mongo tools(mongoimport/mongoexport/mongodump/mongorestore) will not be able to locate.

Version 6.0.4

Bugfix

  • Fixed, when index details are displayed, the index keys are displayed incorrectly in alphabetical order rather than in natural order.
  • Fixed, SQL like, not like parsing error, needs to escape regular expression strings.

Version 6.0.5

  • Improved, allow connection to MongoDB server 4.4.0.

Thank you!

Please visit our feedback page or click the “Feedback” button in the app. Feel free to suggest improvements to our product or service. Users can discuss your suggestion and vote for and against it. We’ll look at it too.