We’re happy to mark another significant milestone for the NoSQLBooster for MongoDB with the final release of the 5.0. It brings a number of new features to increase MongoDB’ers productivity, comprehensive server monitoring and diagnostics tools, visual explain plan, MongoDB log parser, enhanced SQL Query to support SQL JOIN and uncorrelated sub-queries, more friendly display of object and array values, One-click Group-By, better code snippets, mark changed lines and NoSQLBooster-enabled live tutorials…
if you want to try NoSQLBooster 5.0 out now, you can get it from the following link.
The product will automatically enter the 30-day trial mode after successful installation. At the end of the 30-day trial period, the product becomes a free edition. The free edition is free for personal/commercial use but with limited functions.
The following figure shows the main interface of version 5.0.
Let’s dive in and get an overview of what’s coming in NoSQLBooster 5.0!
Although we are showing screenshots of NoSQLBooster for Windows, all these new features are available for Mac OS X and Linux as well.
- “My Queries/Samples” pane
- Visual explain plan
- SQL joins and uncorrelated sub-queries
- Monitoring tools
- Enhanced data viewer
- Enhanced script editor
- Enhanced connection tree/object explorer
- Query code generator improvements
- Other notable improvements
- Minor improvements and bugfix
- Patch Releases
“My Queries/Samples” pane
In version 5.0, the most significant change in the UI interface was the addition of “My Queries / Samples” Pane. The “My Queries / Samples” pane has two tabs, “My Queries” and “Samples.”
The “My Queries” tab is used to open user-saved query scripts quickly. By default, the user-saved query script is saved as a “connection -> database -> query name” directory structure. Double-click to open a saved query script will automatically connect to the appropriate database server and switches to the appropriate database.
The “Sample” tab includes several NoSQLBooster-Enabled tutorials. All samples are executable in NoSQLBooster already, with detailed descriptions. You can try these queries and change them to learn better.
Visual explain plan
NoSQLBooster’s Visual Explain transforms explain output into a hierarchical view of the query plan, which is significantly easier to read and understand, allowing for query tuning to enhance query and resolve performance issues.
MongoDB 3.2 introduced the new $lookup operator. The $lookup operator added to the aggregation pipeline is essentially identical to a left outer SQL join. MongoDB 3.6 further enhances the capabilities of the $lookup operator to perform uncorrelated sub-queries between two collections as well as allow other join conditions besides a single equality match. NoSQLBooster 5.0 implements SQL Equi join and unrelated queries with the power of the $lookup operator.
NoSQLBooster supports INNER JOIN and LEFT JOIN, OUTER JOIN is not supported.
- (INNER) JOIN: Returns records that have matching values in both tables
- LEFT JOIN: Return all records from the left table, and the matched records from the right table
It should be mentioned that there is a tutorial on NoSQLBooster SQL Query for MongoDB in the lower left “Samples” pane. With this tutorial, you can learn and understand how to use NoSQLBooster SQL Query for MongoDB. Better yet, all SQL Functions provide the appropriate code snippets and mouse hover information and support code completion.
In version 5.0, we add several server monitoring and diagnostics tools and consolidate all monitoring related work into a drop-down menu called “Monitoring.”
In-progress operations viewer
When your MongoDB is unresponsive, you need to determine the cause quickly. Although there can be many causes for server unresponsiveness, we sometimes find that exceptionally long running operations and/or blocking operations are the culprits. The new “In-progress operations” tool integrates the currentOp() and killOp() commands and allows you to find and kill long running MongoDB operations quickly.
The db.currentOp() command reports in-progress operations for the mongod instance.
MongoDB log parser
This feature includes two MongoDB log viewers, one for parsing and displaying the most recent 1024 logged MongoD events, and the other for parsing and displaying external MongoDB log files. This tool will parse the log quickly and output general information about its contents, including timestamp, severity, component, context and command specific messages. It also allows you to save parsed log entries to MongoDB’s collection so that you can further analyze and query the logs using MongoDB’s find method.
This simple feature will display the database profiler logs information about database operations in “system.profile” collection. The profiler is off by default. You can enable the profiler on a per-database or per-instance basis at one of several profiling levels. By default, the slow operation threshold is 100 milliseconds.
Click here to learn how to manage the database profiler? (Official documentation for MongoDB)
Troubleshoot replica sets
This feature is a partial implementation of each of the functions mentioned in this official document for MongoDB - Troubleshoot Replica Sets.
It includes the following small features.
- Check Replica Set Status
- Check the Replication Lag
- Check the Size of the Oplog
- Check and fix Oplog Entry Timestamp Error
Enhanced data viewer
Tooltip for array, object and ObjectId values
How to display the array, object values in the data view is often a bit of a hassle. In V5, we add a more friendly tooltip for the array, object, and ObjectId values.
This handy feature allows grouping of the selected field in query results to calculate counts, totals, minimums, maximums, and averages with a single click.
The following example lists the total number and average weight of unicorns by gender.
Table view, show object value as a column group
Now, single-level, more straightforward object values are displayed as column groups within the table view. If an object value has many, complex fields, the object value is formatted as JSON text.
Other notable improvements for the data view
- More copy options, Copy value/key-value pair/document as plain JSON text or Mongo Shell JSON value.
- One-click save query results as MongoDB read-only view, Pop-up right-click menu, Click “Save This Query as MongoDB Read-only View”
- Table view, highlight selected field when view document, When you open the “View Document” dialog within table view, automatically scrolls and highlights to the selected field.
- JSON view, allow view, add, edit and remove document within JSON View.
- JSON view, add a new simple format for JSON view, it will displays all number values as plain text, no more NumberInt(123), NumberLong(“123456789”), NumberDecimal(“1234567.89”)
Enhanced script editor
Better code snippets
We offer tons of built-in snippets to help you writing MongoDB shell script effectively. In V5, We revised a large number of code snippets, better grouping, easy to find, easy to input. Typically, you only need to enter a few initial letters of the action, and you’ll get the sample template code you need.
- Find, findByObjectId, findTextSearch, findWhereEq, Insert, Update, Delete …
- SQL, SQL-JOIN, SQL-SUM, SQL-IN-SELECT …
- Handy date range snippets, e.g. TodayDateRange, LastNWeeksDateRange, LastNMonthsDateRange …
- Simplify complex MongoDB shell command, e.g. aggregate, createUser, rs.initiate, rs.conf …
- If you come from a SQL background, these handy SQL to MongoDB conversion snippets may give you some help,
- Create your snippets by hitting F8
Mark changed lines
The feature lets you see which lines have been changed since the last save operation, the new/modified lines are marked at the left margin.
Switch MongoDB connection and current database within the editor
Now, you can open and switch MongoDB connection within the editor, and you also can change the current database within the editor. It even allows you to view and run scripts without a database Connection. In this case, NoSQLBooster looks much like an ES2017 playground which integrated Lodash, Shelljs, Moment.js and Node.js runtime.
List opened tabs
“List Opened Tabs” feature let you list and switch to another tab. It’s handy if you opened a lot of tabs in a window.
Enhanced connection tree/object explorer
Open MongoDB shell here
This feature allows you to open a new MongoDB Shell terminal via the context menu of the connection node. This is especially handy for SSH tunnel connections.
Better view and manage your indexes
The redesigned index management interface allows you to view index types, sizes, index usage, and other special properties more efficiently. Add and remove indexes at the click of a button.
Connection node tooltip, press “m” to show more metrics
Now, the tooltip for connection node can show more server status information, network in and out, memory, connections…, press “m” to show more server metrics.
Query code generator improvements
Create a query code sample project
Query Code Generator now not only generates query code for the target language (Node.js, Java, C#, Python) but also create sample projects for quick execution and testing of generated query code.
The following video demonstrates how to create and run a java gradle project for MongoDB Query.
Other notable improvements
More “Run” options
Refactoring the “Run” button to a drop-down menu, adding more “Run” options.
Filterable connection manager
You are now able to filter connections by name, server, and security columns.
New option, modify default limit size
The “%%limit%%” variable can be used for code templates e.g. db.collection.find().limit(%%limit%%).
Use Menu -> Options -> Modify Default Code Template -> Modify Default Limit Size… to adjust the value, default size of this variable is 1000.
BTW, you can use Menu -> Options -> Modify Default Code Template -> Code Template for Opening Collection… to customize the “find” code template which are used for opening collection.
Schema analyzer, support JSON schema
Starting in version 3.6, MongoDB supports JSON Schema validation. Now, you can use NoSQLBooster schema analyzer to view specifies validation rules.
Minor improvements and bugfix
- New option, Use Menu -> Options -> Verbose Shell to activate/deactivate the verbose shell.
- Reduce server-side operations by caching results more intelligently
- Upgrade major dependencies electron to 3.0, Chrome v66., Node v10.2, and V8 v6.6
- Upgrade HackFont to 3.0
In this patch release, we fixed some user feedback errors and added the ability to preview images in binary fields.
Preview images in binary fields
- Added, right-click context Menu to all code editor in the dialog box.
- Added, “mod + enter” shortcut to “save” button to save and exit the value editor dialog.
- Fixed, display issue with NumberLong and NumberDecimal in the tree/table view.
- Fixed, an unexpectedly quit bug when opening a collection with large binary data. ref#
- Fixed, “cursor.map” method returns the wrong result type. ref#
- Fixed, “Code” method typing definition issue.
Version 5.0.2 and 5.0.3
- Fixed, DBRef is missing $ref, $id, $db attributes. ref#
- Fixed, a bug in the “cursor.forEach” method. ref#
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.