MongoDB开源数据库开发工具dbKoda

Southbank Software公司最近发布了 dbKoda 0.6.0 ,这是该软件的 首个发布版 。dbKoda是一款开源的 MongoDB 开发工具,采用JavaScript、 React 和 Electron 开发。下图显示了dbKoda的用户图形界面,突出特点是提供了一个连接管理器(Connection Manager)和代码编辑器(Code Editor),其中代码编辑器给出了丰富的MongoDB数据操作特性。

MongoDB开源数据库开发工具dbKoda

连接管理器

连接管理器维护多个数据库连接的配置信息(Profile)。在连接管理器窗口的下半部分,显示了包含每个活跃数据库连接及相应集合(Collection)的列表。点击鼠标右键,就会弹出一系列菜单选项,包括构建查询、执行CRUD操作、索引和导入导出数据(如下图左侧所示)。连接配置信息编辑器用于创建新的数据库连接,它支持所有形式的数据库连接语法(如下图右侧所示)。

MongoDB开源数据库开发工具dbKoda

代码编辑器

代码编辑器中包括了查询输入输出窗口,该窗口用于编写和执行MongoDB的Shell命令。编辑器的特性包括了代码格式化、代码自动完成、代码折叠和语法高亮显示。用户可以在代码编辑器中手工编写查询,也可以使用查询构建器构建查询(如下图所示)。查询构建器可以在代码编辑器中动态地生成相应的MongoDB的Shell命令。该特性在编写复杂的MongoDB Shell命令时非常有用,它消除了如何正确格式化大括号和圆括号的一系列繁琐操作。

MongoDB开源数据库开发工具dbKoda

在Southbank Software最新发布的 dbKoda 0.7.0版 中,提供了如下新特性:

聚合构建器(Aggregation Builder); 存储下钻(Storage Drilldown); SSH隧道连接(SSH Tunneling Connections); 改进的JSON查看器; 导入和导出。

聚合构建器的功能类似于查询构建器,支持构建需要 aggregate 聚合函数的更复杂查询。在下面的例子中, publications 集合(Collection)使用 $lookup 操作符执行与 authors 集合的做内连接运算。

db.publications.aggregate({"$lookup": {
 "localField" : "author_id",
 "from" : "authors",
 "foreignField" : "_id",
 "as" : "authorinfo"
}})

如下图所示,聚合构建器仅需输入 localFieldfromforeignFieldas 等键值域所需的内容,就可动态生成内连接运算。

MongoDB开源数据库开发工具dbKoda

Southbank Software公司CTO Guy Harrison 就dbKoda产品接受了InfoQ的采访。

InfoQ:开发dbKoda产品的灵感来自于哪里?

Guy Harrison:当我撰写《下一代数据库》(Next Generation Databases)一书时,敏锐地意识到我们正经处于数据库系统的第三次变革中。新一代的数据库专业人士需要新一代的数据库工具。考虑到我本身就具有数据库和软件开发的背景,因此我认为自己应该尝试创立一家公司,去推出下一代的数据库工具。

InfoQ:dbKoda为什么以MongoDB为首选?

Harrison:“NoSQL”生态系统中杰出者众,我第一时间能想到就有Cassandra、Couchbase、Hadoop、park和Neo4J等。但是就MongoDB当前已具有三千万次下载使用而言,它无疑是遥遥领先的。

InfoQ: dbKoda未来是否会提供对其它数据库的支持?如果是这样,它将会支持哪些数据库?时间节点如何?

Harrison:我们的确规划在未来的一年中提供对更多数据库的支持,其中包括一些关系型数据库,也有一些非关系型数据库。

InfoQ:dbKoda未来将如何发展?您能为我们详细介绍一下1.0版本的规划吗?

Harrison:我们目前正致力于为在NodeJS等框架中使用MongoDB的开发人员提供更深入的支持,其中包括提供SQL查询功能(通过 Apache Drill ),并改进查询的构建和输出处理。

我们期待1.0版将具备基于订购的托管功能,并且是面向服务器的产品版本,其中包括更深入的性能分析功能、提供协作特性,并持续为编程人员使框架对MongoDB编程提供支持。

InfoQ:您在Southbank Software任职多久了?能为我们介绍一下您当前的职责吗?

Harrison:我是Southbank Software的CTO及创始人,也是Toba Capital的合伙人。Toba Capital是投资dbKoda的风险投资商之一。我身兼多重职责,包括企业管理、产品特征设计、编写自动测试以及部分特征的编码工作。我们的团队具有六位dbKoda的全职开发人员。

Harrison给出了一个五分钟时长的YouTube 视频 ,其中展示了dbKoda入门指南。

查看英文原文: Southbank Software Introduces dbKoda, an Open Source Database Development Tool for MongoDB

时间: 2017-09-15

MongoDB运行状态监控、性能分析工具mongostat详解

这篇文章的目的是让你知道怎么了解你正在运行的Mongdb是否健康. mongostat详解 mongostat是mongdb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取mongodb的当前运行状态,并输出.如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态. 它的输出有以下几列: 1.inserts/s 每秒插入次数 2.query/s 每秒查询次数 3.update/s 每秒更新次数 4.delete/s 每秒删除次数 5.

MongoDB使用自带的命令行工具进行备份和恢复的教程

要备份一个数据库, mongorestore -d db /path/to/back_up 例如: mongodump -d bookstore -o /data01/db_backup/ 该命令会dump出该DB所有的collection 从备份文件夹恢复数据 mongorestore -d bookstore /data01/db_backup/bookstore 只备份或回复指定的collection 以bookstore DB 中statistics 表为例 mongodump -d b

java自带命令行工具jmap、jhat与jinfo的使用实例代码详解

java自带命令行工具(jmap,jhat,jinfo) (1)JMAP 1.作用 打印进程,core文件,和远程进程的共享对象存储map或堆存储器的详细信息. 2.使用 jmap[options]pid jmap[options]executablecore jmap[options][pid]server-id@]remote-hostname-or-IP 如果指定的进程是在64位Java虚拟机(JVM)上运行,那么你可能需要指定-J-d64选项,例如:jmap -J-d64 -heap p

SQLite教程(八):命令行工具介绍

工欲善其事,必先利其器.学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的.最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快.言归正传吧,在SQLite的官方下载网站,提供了支持多个平台的命令行工具,使用该工具我们可以完成大多数常用的SQLite操作,就像sqlplus之于Oracle.以下列表给出了该工具的内置命令: 命令名 命令说明 .help 列出所有内置命令. .backup DBNAME FILE 备份指定的数据库到指定的文件,缺省为当前连接的

使用Python编写类UNIX系统的命令行工具的教程

引言 您是否能编写命令行工具?也许您可以,但您能编写出真正好用的命令行工具吗?本文讨论使用 Python 来创建一个强健的命令行工具,并带有内置的帮助菜单.错误处理和选项处理.由于一些奇怪的原因,很多人并不了解 Python? 的标准库具有制作功能极其强大的 *NIX 命令行工具所需的全部工具. 可以这样说,Python 是制作 *NIX 命令行工具的最佳语言,因为它依照"batteries-included"的哲学方式工作,并且强调提供可读性高的代码.但仅作为提醒,当您发现使用 Py

详解Node.js如何开发命令行工具

前言 Node 给前端开发带来了很大的改变,促进了前端开发的自动化,我们可以简化开发工作,然后利用各种工具包生成生产环境.如运行sass src/sass/main.scss dist/css/main.css即可编译 Sass 文件. 在实际的开发过程中,我们可能会有自己的特定需求, 那么我们得学会如何创建一个Node命令行工具. hello world 老规矩第一个程序为hello world.在工程中新建bin目录,在该目录下创建名为helper的文件,具体内容如下: #!/usr/bin

在vbs运行命令行工具后让命令窗口保持打开状态的脚本

问: 您好,脚本专家!如何在运行像 Ping 或 Ipconfig 这样的工具后让命令窗口保持打开状态? -- DB 答: 您好,DB.这个问题让我们想起了往事.有一个脚本专家刚来 Microsoft,那时许多人认为 WMI 和 ADSI 对于脚本编写者来说太难使用.因此,人们建议这个脚本专家不使用 WMI 或 ADSI,而是干脆使用 VBScript 作为调用命令行工具的方法.事实上,这个脚本专家编写的第一章就是一个关于事件日志管理的章节,该章后来成为 Microsoft Windows 20

Node.js 使用命令行工具检查更新

随着 Node.js 的"走红",使用 Node.js 开发命令行工具越来越简单.一个成熟的命令行工具应该从一开始就要考虑好之后的版本更新如何"优雅"的告知用户.最好的方法当然是当用户在终端执行命令时,将相关信息提示给用户. 这篇文章将给出一个易用.高效.可定制的方法.源码在这里: GITHUB ,欢迎大家顺手点赞.接下来我将讲解其实现思路. 使用 我们先简单看看这个 npm 包的使用方法: const updater = require('pkg-updater'

命令行模式下备份、还原 MySQL 数据库的语句小结

为了安全起见,需要经常对数据库作备份,或者还原.对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出.导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyAdmin 可能会遭遇"超时"而操作失败.所以,学会在命令行模式下备份.还原数据库,还是很有必要的. 1.备份数据库 在 Linux 命令行模式下备份 MySQL 数据库,用的是 mysqldump 命令: 复制代码 代码如下: mysqldump -u mysqluser -p test_

node通过npm写一个cli命令行工具

前言 如果你想写一个npm插件,如果你想通过命令行来简化自己的操作,如果你也是个懒惰的人,那么这篇文章值得一看. po主的上一篇文章介绍了定制自己的模版,但这样po主还是不满足啊,项目中我们频繁的需要新建一些页面,逻辑样式等文件,每次都手动new一个,然后复制一些基本代码进去非常的麻烦,所以就有了这篇文章.接下来就让po主为大家一步一步演示怎么做一个npm命令行插件. 注册npm账户 发布npm插件,首先肯定要有个npm帐号了,过程就不啰嗦了,走你. npm官网 有了账号后,我们通过npm in

利用node.js制作命令行工具方法教程(一)

前言 之前使用过一些全局安装的NPM包,安装完之后,可以通过其提供的命令,完成一些任务.比如Fis3,可以通过fis3 server start 开启fis的静态文件服务,通过fis3 release开启文件编译与发布:还有vue-cli,可以通过vue init webpack my-project来初始化vue+webpack的项目基础配置.最近有一个需求,需要写一个类似vue-cli的NPM包,通过命令行操作实现项目初始配置,所以就查看了相关资料,学习了一下如何使用node来生成自己的命令