MongoBooster is a shell-centric cross-platform GUI tool for MongoDB v2.4-3.4, which provides fluent query builder, SQL query, update-in-place, ES2017 syntax support and true intellisense experience.
MongoBooster embeds V8 JavaScript engine. No external MongoDB command line tools dependenced.
MongoBooster can connect MongoDB server and fully support its mongo shell commands from v2.4 to v3.4.
Support MongoDB Enterprise Edition by adding authentication mechanisms: Kerberos(GSSAPI) & LDAP(PLAIN).
We offer true IntelliSense experience. The build-in language service knows all possible completions, methods, properties, variables, key words, even the MongoDB collection names, field names and operators. The IntelliSense suggestions will pop up as you type. You can always manually trigger it with Ctrl-Shift-Space. Out of the box, Ctrl-Space, Alt-Space are acceptable triggers.
MongoBooster supports mongoose-like fluent query builder API which enables you to build up a query using chaining syntax, rather than specifying a JSON object. The aggregation framework is now fluent as well. You can use it as currently documented or via the chainable methods.
// instead of writing:
db.user.find({age:{:
18,:
65}},{name:
1,age:
1,_id:-
1}).sort({age:-
1, name:
1});
// we can write:
db.user.where(
'age').gte(
18).lte(
65).select(
'name age -_id').sort(
"-age name");
// passing query conditions is permitted too
db.collection.find().where({ name:
'mongobooster' })
// chaining
db.collection
.where(
'age').gte(
18).lte(
65)
.where({
'name': /^mongobooster/i })
.where(
'friends').slice(
10)
// aggregation
db.companies.aggregate(qb.where(
'founded_year').gte(
2000).lte(
2010))
//qb:querybuilder
.group({_id:
"$category_code",count:{$sum:
1}})
.sort(
'-count')
.limit(
100)
With MongoBooster, you can run SQL SELECT Query against MongoDB. SQL support includes functions, expressions, aggregation for collections with nested objects and arrays.
Let's look at how to use the GROUP BY clause with the SUM function in SQL.
Instead of writing the MongoDB query which is represented as a JSON-like structure
db.employees.aggregate([
{
$group: {
_id:
"$department",
total: { $sum:
"$salary" }
},
}
])
You can query MongoDB by using old SQL which you probably already know
SELECT department, SUM(salary) AS total FROM employees GROUP BY department
MongoBooster comes with visual query builder. The two-way query builder could help you construct and display complex MongoDB find statements even without the knowledge of the MongoDB shell commands syntax.
Schema Analyzer is a very useful build-in tool. Due to schema-less feature, collections in MongoDB do not have a schema document to describe field's datatype, collection structure and validations. With our brand new Schema Analyzer Tool, you will get a document to describe the schema of certain collection from sampled(random, first, last) N or all records.
The document shows the probability of sampled objects , different types percentage, you could get a brief of certain collection's schema. If you want more accurate result, you could sample more records or analyze whole collection, but it may took a long time to finish if the collection has millions records or thousands fields.
It also shows document validation of the collection, which is a new feature in MongoDB 3.2. There will be a validator window showing below the document. If you click the link, field will be highlighted in the window.
You could export this document to most popular document file types, like MS Word, PDF, HTML, along with JSON, TXT and CSV. Mongoose.js schema file supported as well. Click here to view sample schema file
Create a large collection with random but "real data" is available in Mongobooster 3.0. We now provide more than 100 templates to create random faked "real" data, and you can use this tool to create test data with incredible large size. You could also define how much data is blank too, and how many docs to create. All settings will generate a script in the shell, and you could customize it with more complex business logic.
For MongoDB, mongotop do pretty much the same job as the Unix command top, it is used to monitor the Mongo instance.The output of mongotop indicates the amount of time the mongod process spend reading and writing to a specific collection during the update interval. mongotop provides statistics on a per-collection level.
MongoBooster offers a build-in GUI tool for MongoTop. No external MongoTop command line tools dependence.
The MongoStat utility provides a quick overview of the status of a currently running mongod or mongos instance. mongostat is functionally similar to the UNIX/Linux file system utility vmstat, but provides data regarding mongod and mongos instances.
MongoBooster offers a build-in GUI tool for MongoStat too. No external MongoStat command line tools dependence.
MongoBooster now officially supports MongoDB Enterprise Edition by adding two new authentication mechanisms Kerberos(GSSAPI) & LDAP(PLAIN), in addition to already supported regular username/password(SCRAM-SHA-1(added in MongoDB 3.0)/MONGODB-CR) & X.509. This feature is available in all licensed edition. No extra charge.
MongoBooster embeds V8 JavaScript engine based mongo shell. No external MongoDB command line tools dependence. It can Work for MongoDB: 2.4-3.4
MongoBooster support in-place editing in result tree view. Double-click on any value or array element to edit. Full MongoDB data type support in the in-place editor, enabling lossless editing and saving.
MongoBooster fully supports MongoDB’s GridFS. With our GridFS Viewer, you can read and write to GridFS collections. Files can be added easily with drag and drop.
You do have full access to a production database, but usually you don't want to change anything by mistaken, you could use the read-only status lock. There are two ways to use it:
You could unlock temporarily of a locked config by using the unlock button too. The temporary lock/unlock only affects current tab.
When working on dev/prod databases at the same time you may unintentionally delete or update something on prod instead of dev. Now you could mark prod ones in red and dev in green. It would help you prevent this kind of mistake.
Under the dataview setting menu, a dataview auto refresh setting list is added. Whichever view you use, the dataview will refresh automatically in certain seconds.(Note: if you want to change your shell code, you need to pause the auto refresh which is besides the countdown)
We offer tons of build-in snippets to help you writing MongoDB shell script effectively. MongoBooster also supports user-defined snippets.
The rich language services constantly analyze your code in the background. All errors are reported right in the editor as you type, any line of code with a possible issue is marked in the editor gutter, so you can easily spot it.
In the script editor, parameter hints will pop up as you're typing a method invocation. You can navigate between different overloads with ↑ and ↓ and the best overload will be presented based on the arguments you pass in.
The mouse hover will show many useful information, such as types of symbols, function definition, type information and document.
Matching brackets will be highlighted as soon as the cursor is near one of them.
MongoBooster inlcudes a few useful MongoDB shell extensions to make the life inside of the MongoDB shell a little bit easier.
ES2017 (formally ES7) is a fantastic step forward for the JavaScript language. It lets us write dramatically more consise and readable MongoDB shell script, thanks to built-in support for block variable scoping, arrow functions, template strings, and numerous other improvements to the language.
MongoBooster has a build-in function await method(It's a common js method, not a keyword). It can await a promise or a promise array. Note this await function is different from es7 await, this await function may be used in functions without the async keyword marked.
Please try the following code:
function sendSmsAsync(phone, message){
//promisify sendSms
return new Promise((resolve, reject)=> {
sendSms(phone, message, (status)=>{
resolve(status)
})
});
}
db.users.find({}).forEach((user) => {
let status=await(sendSmsAsync(user.phone,
"A short message"));
//await a promise
db.smsDeliveries.insert({status});
});
MongoBooster integrates lodash, shelljs, mathjs and momentjs utility library. You can directly use lodash(_), shelljs(shelljs), mathjs(math) and momentjs (moment) in your shell script.
You can assemble npm packages like building blocks in your MongoDB shell script. The npm registry hosts almost half a million packages of free, reusable code — the largest software registry in the world.
Launch MongoBooster. - Execute Main Menu -> Help -> Open User Data Directory - New Terminal at this folder
npm i node-fetch
# run it in MongoBooster user data directory
After successfully installing this package in the MongoBooster User Data Directory, you can require and access it in the MongoBooster script.
const fetch=
require(
'node-fetch');
let res=await(fetch(
'https://api.github.com/users/github'));
//await promise
res.json()
Everything MongoBooster can do is in the Command Palette. See it by using shortcuts: Ctrl-Shift-P. Instead of clicking around all the application menus to look for something, you can just hit Ctrl-Shift-P and search for the command.
MongoBooster includes GUI tools for mongodump and mongorestore command-line program.
MongoBooster makes it easy to transfer and sync data between databases in just a few quick steps. You can easily clone databases, add missing records from one database to another, or overwrite collections in the destination database. You can even sync records from any two databases (based on a matching "_id" field). AND all of the functions of this data transfer/sync can work between ANY connections, so it's trivial to mirror a remote database locally (can be useful for debugging purposes) or just to periodically maintain synchronicity between multiple databases deployed across the web.
Simply import and export collections from/to JSON/CSV file, Like test data generator, we put all the export/import/copy logic in the shell, you could review the code to make your changes. The progression is shown in the console.log/print tab.
In case you want to transform a project's database from MySql to MongoDB, or need to import data from 3rd party database. now you could do it through our RDBMS data import tool. We now support MySql, PostgreSql and MSSQL. Like test data generator, you could just config it on UI or write more complex business logic in the shell.
We added import RDBMS to MongoDB, on the other hand, we also provide export MongoDB database/collection to .sql file. Supported dialect includes MySql, MSSQL, PostgreSql and Oracle.
Learn MongoDB shell commands as you use different views in MongoBooster GUI
© Copyright 2000-2023 COGITO SOFTWARE CO.,LTD. All rights reserved