NoSQLBooster for MongoDB
查询代码生成器
NoSQLBooster for MongoDB 4.2带有查询代码生成器,允许用户将MongoDB查询(查找,聚合或SQL查询)转换为各种目标语言:MongoDB Shell,JavaScript(Node.js),Java,C#和Python。
要使用查询代码生成器:
1.输入find,aggregate或SQLQuery语句,执行并获取结果。 (提示:在4.1版本中,您甚至可以使用可视化查询生成器)
2.单击结果视图工具栏中的“查询码生成器”按钮,弹出“查询码生成器”对话框
3.从下拉列表中选择您的目标语言。 “查询代码生成器”目前支持MongoDB Shell,Javascript Node.js ES5,Javascript Node.js ES6 Promise,Javascript Node.js ES7 Async / Await,Python(PyMongo 3.x),C#(2.x驱动程序)和Java (3.x驱动程序)
4.将生成的代码复制到剪贴板
一键式解释
这个版本还提供了一个友好的一键解释功能,它将调用“cursor.explain”方法来返回一个包含查询计划和可选的执行统计信息的文档。 该功能支持查找,聚合或SQL查询方法的结果信息。
使用一键解释
1.输入find,aggregate或SQLQuery语句,执行并获取结果。
2.单击结果视图工具栏中的“说明”按钮,并用查询计划显示文档。
小的改进
统计工具提示索引
此版本还美化了统计工具提示并显示了索引的统计工具提示。
适用于MongoDB的最智能的IDE
MongoBooster是一个以shell为中心的跨平台GUI工具,用于MongoDB v2.4-3.4,它提供了流畅的查询生成器,SQL查询,就地更新,ES2017语法支持和真正的智能感知体验。
免费版现在可用。
嵌入式外壳
MongoBooster嵌入V8 JavaScript引擎。 没有外部的MongoDB命令行工具依赖。
MongoDB 2.4 到 3.4
MongoBooster可以连接MongoDB服务器,并完全支持从v2.4到v3.4的mongo shell命令。
企业版
通过添加身份验证机制来支持MongoDB企业版:Kerberos(GSSAPI)和LDAP(PLAIN).
为什么选择 MongoBooster?
真正的智能感知
我们提供真正的智能感知体验。 内置的语言服务知道所有可能的完成,方法,属性,变量,关键字,甚至是MongoDB集合名称,字段名称和运算符。智能感知建议将在您输入时弹出。 你总是可以用Ctrl-Shift-Space手动触发它。开箱即用,Ctrl-Space,Alt-Space是可以接受的触发器。
当光标位于有效的MongoDB方法上时,按F1键会引导您进入MongoDB在线文档。
Fluent查询生成器
独特的功能
MongoBooster支持类似mongoose的流畅的查询构建器API,使您能够使用链接语法构建查询,而不是指定JSON对象。汇总框架现在也很流畅。 您可以按照当前文档或通过可链接的方法使用它。
// 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)
用SQL查询MongoDB
使用MongoBooster,您可以针对MongoDB运行SQL SELECT Query。 SQL支持包括函数,表达式,嵌套对象和数组的集合。
我们来看看如何在SQL中使用带SUM函数的GROUP BY子句。
而不是编写表示为类似JSON结构的MongoDB查询
db.employees.aggregate([
{
$group: {
_id: "$department",
total: { $sum: "$salary" }
},
}
])
您可以使用您可能已经知道的旧SQL来查询MongoDB
SELECT department, SUM(salary) AS total FROM employees GROUP BY department
可视化查询生成器
MongoBooster带有可视化查询生成器。双向查询生成器可以帮助您构建和显示复杂的MongoDB查找语句,即使不了解MongoDB shell命令语法。
模式分析器
模式分析器是一个非常有用的内置工具。由于无模式特性,MongoDB中的集合没有描述字段数据类型,集合结构和验证的模式文档。使用我们全新的模式分析器工具,您将获得一个文档来描述来自抽样(随机,第一,最后)N或所有记录的特定集合的模式。
该文件显示了抽样对象的概率,不同类型的百分比,可以得到某个集合的模式简介。如果你想要更准确的结果,你可以采样更多的记录或分析整个收集,但如果收集有数百万条记录或数千个字段,可能需要很长时间才能完成。
它还显示了集合的文档验证,这是MongoDB 3.2中的一个新功能。文档下方会显示一个验证器窗口。 如果您点击链接,字段将在窗口中突出显示。
您可以将此文档导出到最流行的文档文件类型,如MS Word,PDF,HTML以及JSON,TXT和CSV。 也支持Mongoose.js模式文件。
测试数据生成器
在Mongobooster 3.0中随机创建一个大集合,但是“真实数据”是可用的。我们现在提供100多个模板来创建随机伪造的“真实”数据,您可以使用这个工具创建难以置信的大尺寸的测试数据。您还可以定义多少数据也是空白的,以及要创建多少个文档。所有设置将在shell中生成一个脚本,并且可以使用更复杂的业务逻辑对其进行自定义。
用于MongoTop的GUI
对于MongoDB,mongotop和Unix命令做的工作几乎一样,它被用来监视Mongo实例。mongotop的输出表示在更新间隔期间mongod进程花费读取和写入特定集合的时间。 mongotop提供每个集合级别的统计信息。
MongoBooster为MongoTop提供了一个内置的GUI工具。 没有外部的MongoTop命令行工具依赖。
MongoStat的GUI
mongostat实用程序提供了当前正在运行的mongod或mongos实例的状态的快速概览。 mongostat在功能上与UNIX / Linux文件系统实用程序vmstat类似,但提供有关mongod和mongos实例的数据。
MongoBooster也为MongoStat提供了一个内置的GUI工具。 没有外部的MongoStat命令行工具依赖。
MongoDB企业版
MongoBooster现在正式支持MongoDB企业版,除了已经支持的常规用户名/密码(SCRAM-SHA-1(在MongoDB 3.0中添加)/ MONGODB-CR)之外,还添加了两个新的身份验证机制Kerberos(GSSAPI)和LDAP(PLAIN)X.509。此功能在所有授权版本中均可用。 不再额外收费。
嵌入式Mongo Shell
MongoBooster嵌入了基于V8 JavaScript引擎的mongo shell。 没有外部的MongoDB命令行工具依赖。 它可以为MongoDB工作:2.4-3.4
原地更新
MongoBooster在结果树视图中支持就地编辑。 双击任何值或数组元素进行编辑。在就地编辑器中支持完整的MongoDB数据类型,实现无损编辑和保存。
支持 GridFS
MongoBooster完全支持MongoDB的GridFS。 使用我们的GridFS查看器,您可以读取和写入GridFS集合。 文件可以通过拖放轻松添加。
只读状态锁定
您可以完全访问生产数据库,但通常您不想错误地更改任何内容,您可以使用只读状态锁定。 有两种使用方法:
将整个连接设置为只读,编辑配置使其成为只读
将任何标签暂时设置为只读,使用标签工具栏上的锁定按钮
您也可以使用解锁按钮暂时解锁锁定的配置。 临时锁定/解锁仅影响当前选项卡。
用颜色标记连接
在同时使用dev / prod数据库时,可能会无意中删除或更新prod上的某些内容而不是dev。现在你可以用红色标记prod,用绿色标记dev。 这会帮助你防止这种错误。
自动刷新结果数据视图
在dataview设置菜单下,添加一个dataview自动刷新设置列表。无论您使用哪种视图,数据视图都会在一定时间内自动刷新(注意:如果您想更改shell代码,则需要暂停除倒计时以外的自动刷新)
数吨片段
我们提供了大量的内置代码片段来帮助您有效地编写MongoDB shell脚本。 MongoBooster也支持用户定义的片段。
手持日期范围片段,例如 TodayDateRange,LastNWeeksDateRange,LastNMonthsDateRange...
简化复杂的MongoDB shell命令,例如 聚合,createUser,mapReduce ...
如果您来自SQL背景,这些方便的SQL到MongoDB转换片段可能会提供一些帮助,例如 SqlToAggregationCount,SqlToAggregationSum ...
按F8创建用户定义的片段
即时错误检测
丰富的语言服务在后台不断分析您的代码。 所有错误都会在编辑器中正确输出,任何可能出现问题的代码行都会在编辑器中显示出来,所以您可以很容易的发现它。
参数提示
在脚本编辑器中,参数提示将在您输入方法调用时弹出。 您可以使用↑和↓在不同的重载之间导航,并根据您传入的参数显示最佳重载。
用 Ctrl-Shift-Space, Ctrl-Space 或 Alt-Space.手动触发它。
鼠标悬停
鼠标悬停将显示许多有用的信息,如符号类型,函数定义,类型信息和文档。
支架匹配
一旦光标靠近其中一个,匹配的括号就会突出显示。
突出显示并在[],()和{}之间跳转。
自动完成[],()和{},“”和“”。
使用Ctrl-P 转到匹配括号
选择与Ctrl-Alt-P匹配的括号
着名的编辑器功能
语法高亮
自动缩进和减少缩进
使用正则表达式搜索并替换
突出显示匹配的括号
在软标签和真实标签之间切换
显示隐藏的字符
使用鼠标拖放文本
线包装
代码折叠
拥抱ES2017
MongoBooster包含一些有用的MongoDB外壳扩展,使MongoDB外壳内的生活更容易一些。
ES2017(正式ES7)是JavaScript语言向前迈进的一步。 由于内置了对块变量作用域,箭头函数,模板字符串的支持以及对语言的许多其他改进,因此它使我们可以编写更加简洁易读的MongoDB shell脚本。
异步编码与等待
MongoBooster有一个内置的函数await方法(这是一个常用的js方法,而不是关键字)。 它可以等待承诺或承诺阵列。 注意,这个await函数和es7 await不同,这个await函数可以用在没有标记async关键字的函数中。
请尝试下面的代码:
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});
});
Lodash, ShellJs, Mathjs和 Moment
MongoBooster集成了lodash,shelljs,mathjs和momentjs实用程序库。 你可以在shell脚本中直接使用lodash(_),shelljs(shelljs),mathjs(math)和momentjs(moment)。
Lodash是Javascript函数的一个工具包,提供了干净,高效的方法来处理对象和集合。
ShellJs是在Node.js API之上的Unix shell命令的可移植(Windows / Linux / OS X)实现。
Moment.js是一个全功能的日期库,用于分析,验证,操作和格式化日期。
Mathjs是JavaScript和Node.js的一个广泛的数学库。
使用节点模块
您可以在MongoDB shell脚本中组装npm包,如构建块。 npm注册机构拥有近50万个免费,可重复使用的代码包 - 世界上最大的软件注册表。
启动MongoBooster。 - 执行主菜单 - >帮助 - >打开用户数据目录 - 在此文件夹的新终端
npm i node-fetch # run it in MongoBooster user data directory
在MongoBooster用户数据目录中成功安装此包后,您可以在MongoBooster脚本中要求并访问它。
.
const fetch=require('node-fetch');
let res=await(fetch('https://api.github.com/users/github')); //await promise
res.json()
命令选项板
MongoBooster可以做的一切就是在命令面板中。 使用快捷方式查看:按Ctrl-Shift-P键。 不要点击所有的应用程序菜单来查找某些内容,只需按Ctrl-Shift-P并搜索命令即可。
用于转储和还原的GUI
MongoBooster包含用于mongodump和mongorestore命令行程序的GUI工具。
Mongodump是一个用于创建数据库内容的二进制导出的实用程序。 mongodump可以从mongod或mongos实例中导出数据。
mongorestore程序将数据从由mongodump创建的二进制数据库转储写入MongoDB实例。
简单的数据传输/数据库之间的同步
MongoBooster只需几个简单的步骤,就可以轻松在数据库之间传输和同步数据。您可以轻松克隆数据库,将缺失的记录从一个数据库添加到另一个数据库,或覆盖目标数据库中的集合。甚至可以同步来自任何两个数据库的记录(基于匹配的“_id”字段)。并且此数据传输/同步的所有功能都可以在任何连接之间工作,所以在本地镜像远程数据库(可用于调试目的)很简单,或者只是定期维护Web上部署的多个数据库之间的同步性。
简单的进口和出口
简单的导入和导出JSON / CSV文件的集合,就像测试数据生成器一样,我们将所有导出/导入/复制逻辑放在shell中,您可以查看代码以进行更改。 进度显示在console.log / print标签中。
从关系型数据库管理系统导入表
如果你想将项目的数据库从MySql转换到MongoDB,或者需要从第三方数据库导入数据。现在你可以通过我们的RDBMS数据导入工具来完成。 我们现在支持MySql,PostgreSql和MSSQL。 像测试数据生成器一样,您可以在UI上配置它,或者在shell中编写更复杂的业务逻辑。
导出到SQL文件
我们增加了导入RDBMS到MongoDB,另一方面,我们也提供导出MongoDB数据库/集合到.sql文件。 支持的方言包括MySql,MSSQL,PostgreSql和Oracle。
外壳日志窗口
在MongoBooster GUI中使用不同的视图来学习MongoDB shell命令
更多功能!
自动更新,所以您的副本将始终是最新的。 (Linux不支持自动更新。)
用于MongoDB连接的SSH隧道,支持SSH密钥格式:ECDH和ECDSA
简单管理碎片和副本集
与SSL支持连接
自动恢复用户工作区.
显示总行数
明亮和黑暗的主题
多个shell,多个结果
多个窗口管理器,水平平铺和垂直平铺
拖放选项卡重新排序
UI:创建和修改MongoDB索引
UI:添加和删除数据库和集合
UI:添加和删除任何类型的数组元素。
UI:添加和删除集合
将脚本转储到ES5
受到全球数百家公司的信赖