查询代码生成器
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.单击结果视图工具栏中的“说明”按钮,并用查询计划显示文档。
小的改进
统计工具提示索引
此版本还美化了统计工具提示并显示了索引的统计工具提示。
MongoBooster是一个以shell为中心的跨平台GUI工具,用于MongoDB v2.4-3.4,它提供了流畅的查询生成器,SQL查询,就地更新,ES2017语法支持和真正的智能感知体验。
MongoBooster嵌入V8 JavaScript引擎。 没有外部的MongoDB命令行工具依赖。
通过添加身份验证机制来支持MongoDB企业版:Kerberos(GSSAPI)和LDAP(PLAIN).
我们提供真正的智能感知体验。 内置的语言服务知道所有可能的完成,方法,属性,变量,关键字,甚至是MongoDB集合名称,字段名称和运算符。智能感知建议将在您输入时弹出。 你总是可以用Ctrl-Shift-Space手动触发它。开箱即用,Ctrl-Space,Alt-Space是可以接受的触发器。
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)
使用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中生成一个脚本,并且可以使用更复杂的业务逻辑对其进行自定义。
对于MongoDB,mongotop和Unix命令做的工作几乎一样,它被用来监视Mongo实例。mongotop的输出表示在更新间隔期间mongod进程花费读取和写入特定集合的时间。 mongotop提供每个集合级别的统计信息。
MongoBooster为MongoTop提供了一个内置的GUI工具。 没有外部的MongoTop命令行工具依赖。
mongostat实用程序提供了当前正在运行的mongod或mongos实例的状态的快速概览。 mongostat在功能上与UNIX / Linux文件系统实用程序vmstat类似,但提供有关mongod和mongos实例的数据。
MongoBooster也为MongoStat提供了一个内置的GUI工具。 没有外部的MongoStat命令行工具依赖。
MongoBooster现在正式支持MongoDB企业版,除了已经支持的常规用户名/密码(SCRAM-SHA-1(在MongoDB 3.0中添加)/ MONGODB-CR)之外,还添加了两个新的身份验证机制Kerberos(GSSAPI)和LDAP(PLAIN)X.509。此功能在所有授权版本中均可用。 不再额外收费。
MongoBooster嵌入了基于V8 JavaScript引擎的mongo shell。 没有外部的MongoDB命令行工具依赖。 它可以为MongoDB工作:2.4-3.4
MongoBooster在结果树视图中支持就地编辑。 双击任何值或数组元素进行编辑。在就地编辑器中支持完整的MongoDB数据类型,实现无损编辑和保存。
MongoBooster完全支持MongoDB的GridFS。 使用我们的GridFS查看器,您可以读取和写入GridFS集合。 文件可以通过拖放轻松添加。
您可以完全访问生产数据库,但通常您不想错误地更改任何内容,您可以使用只读状态锁定。 有两种使用方法:
您也可以使用解锁按钮暂时解锁锁定的配置。 临时锁定/解锁仅影响当前选项卡。
在同时使用dev / prod数据库时,可能会无意中删除或更新prod上的某些内容而不是dev。现在你可以用红色标记prod,用绿色标记dev。 这会帮助你防止这种错误。
在dataview设置菜单下,添加一个dataview自动刷新设置列表。无论您使用哪种视图,数据视图都会在一定时间内自动刷新(注意:如果您想更改shell代码,则需要暂停除倒计时以外的自动刷新)
我们提供了大量的内置代码片段来帮助您有效地编写MongoDB shell脚本。 MongoBooster也支持用户定义的片段。
丰富的语言服务在后台不断分析您的代码。 所有错误都会在编辑器中正确输出,任何可能出现问题的代码行都会在编辑器中显示出来,所以您可以很容易的发现它。
在脚本编辑器中,参数提示将在您输入方法调用时弹出。 您可以使用↑和↓在不同的重载之间导航,并根据您传入的参数显示最佳重载。
鼠标悬停将显示许多有用的信息,如符号类型,函数定义,类型信息和文档。
一旦光标靠近其中一个,匹配的括号就会突出显示。
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});
});
MongoBooster集成了lodash,shelljs,mathjs和momentjs实用程序库。 你可以在shell脚本中直接使用lodash(_),shelljs(shelljs),mathjs(math)和momentjs(moment)。
您可以在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并搜索命令即可。
MongoBooster包含用于mongodump和mongorestore命令行程序的GUI工具。
MongoBooster只需几个简单的步骤,就可以轻松在数据库之间传输和同步数据。您可以轻松克隆数据库,将缺失的记录从一个数据库添加到另一个数据库,或覆盖目标数据库中的集合。甚至可以同步来自任何两个数据库的记录(基于匹配的“_id”字段)。并且此数据传输/同步的所有功能都可以在任何连接之间工作,所以在本地镜像远程数据库(可用于调试目的)很简单,或者只是定期维护Web上部署的多个数据库之间的同步性。
简单的导入和导出JSON / CSV文件的集合,就像测试数据生成器一样,我们将所有导出/导入/复制逻辑放在shell中,您可以查看代码以进行更改。 进度显示在console.log / print标签中。
如果你想将项目的数据库从MySql转换到MongoDB,或者需要从第三方数据库导入数据。现在你可以通过我们的RDBMS数据导入工具来完成。 我们现在支持MySql,PostgreSql和MSSQL。 像测试数据生成器一样,您可以在UI上配置它,或者在shell中编写更复杂的业务逻辑。
我们增加了导入RDBMS到MongoDB,另一方面,我们也提供导出MongoDB数据库/集合到.sql文件。 支持的方言包括MySql,MSSQL,PostgreSql和Oracle。
在MongoBooster GUI中使用不同的视图来学习MongoDB shell命令