[C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)
正文
该项目从2011年10月开始开发,知道现在已经有整整5年了。MongoDB也从一开始的大红大紫到现在趋于平淡。
MongoCola这个工具在一开始定位的时候只是一个Windows版本的工具,期间也想改为WebPage版本,但是只是开了一个头,也没有继续下去。
现在想想,可能这个决定是正确的,WebPage版本是为了跨平台才去做的,但是,当时的环境,Net Core并没有发布,即使用MVC5搭建平台,也依然无法做到跨平台。
现在,随着Net Core的发布,WebPage的事情也重新摆上日程了。
选在这个时候发布软件,一是因为Connect16大会之后,微软也发布了很多令人振奋的消息,所以我也来锦上添花一下。二来,MongoDB3.4这个重大的版本更新也是箭在弦上了,应该年底就会发布正式版本了。三来,也是对于今年的一个总结。
虽然这只是一个Winform的项目,但是在开发中,几乎将整个MongoDB的官方文档都翻了一遍,很多知识也重新学习了一下,收获还是很丰富的。
由于开发周期很长,很多代码在这次开发中,都进行了老朽化处理,废弃和修改了很多东西,所以测试也并不完全,所以这个工具现在只是用于学习MongoDB或者是开发环境下使用。
对于开源软件,其实很多人只是想看看源代码,或者收藏源代码,能够从源代码里面找到自己想要的功能的人不多,能够加入开发的更少了。这个项目只有2-3个同志贡献过有用代码,非常感谢。
所以这次开源,我也不抱什么希望,如果有谁能够从我的代码中学到些什么,我就知足了。
MongoCola工具 : http://www.codesnippet.info/Article/Index?ArticleId=00000062
MongoCola是一款帮助你在图形界面下查看,操作MongoDB的工具类软件。
本工具的目标是尽量用图形界面来代替命令脚本帮您完成一些日常的MongoDB管理工作。
本软件是完全免费的软件,您可以无条件的使用本软件的任何功能。
下载地址: https://github.com/magicdict/MongoCola/releases
用户手册: http://www.codesnippet.info/Article/Index?ArticleId=00000062
GitHub 项目地址 https://github.com/magicdict/MongoCola/
意见和建议:https://github.com/magicdict/MongoCola/issues
版本号:Ver 2.1.0
文档最后更新时间:2016-11-24
该项目在Github上的热度:
用户手册:
在开发的过程中,当然会有一些问题产生,如果有问题,可以和MongoDB工程师通过JIRA进行沟通。
如果你的资料够详细,能够很快复原出问题现场,他们的feedback也是很快的。
GeoNear
真正有用的开源信息,也就是上面这些了。不过,按照博客园小编的想法,文章或多或少要写点什么东西,不然会当作广告处理的。所以还是写点什么吧。
前几天,有个朋友用MongoDB做GeoNear的查询操作。在MongoDB中,对于地理坐标的内置处理是一个特色。
你可以在数据的某个字段里面保存坐标,然后可以使用GeoNear来寻找离开指定坐标,指定距离内的所有记录。
但是,这里有一个坑,在MongoDB里面有一种坐标格式是GeoJson,一种格式是LegacyPoint。前者是现在官方推荐的坐标形式,后者就如它的名字一样,是旧的形式。
这两种坐标,前者是一个BsonDocument,后一种是BsonArray:
BsonDocument:{ type:"point",coordinate:"40.1234,120.333"}
BsonArray:[40.1234,120.3333]
但是,在GeoNear这个命令中,前者的距离单位是Meter(米),后者是Redius(弧度)。1个弧度 = 6314公里,所以很容易搞错的。
如果你使用了LegacyPoint作为指定点的坐标,然后想指定1000米之内的所有坐标,恭喜你,你实际上会得到所有的点(1000弧度,6314000公里)
当然,即使你输入的指定坐标是GeoJson,但是你的数据库里存放的点是LegacyPoint,则同样会是所有的点。
所以,如果您的项目需要用到地理坐标,请一定要用GeoJson来保存数据。
这些知识也是博客园上的一个同志问我的,我也通过查阅官方文档才得到这样的结论。所以说,官方文档,阅读文档的能力,也是程序员的一个技能。
接下来贴几张图吧:第一张是上面提到的GeoNear
主界面这个样子的
MapReduce
最后引用一段网络上的MongoDB3.4新特性的资料来结束这篇帖子:
MongoDB 下一个大版本 3.4 即将发布,本文主要介绍 3.4 版本在功能特性上做的改进,内容翻译自 Development Release Notes for 3.4 Release Candidate。
分片集群(Sharded Cluster)
Membership Awareness
MongoDB 3.4里,分片集群的所有组件,Config server、mongod、mongos 都能相互感知整个分片集群的存在,了解整个分片集群的配置信息,这样能避免分片集群的误配置,比如在现在的版本,有可能会将一个 shard 错误的加到多个 sharded cluster 了。这个特性引入了如下限制
分片集群里 mongod 启动时,必须显式配置 sharding.clusterRole 为 shardsrv
3.4版本的 mongos 不能连接低版本的 mongod
Config server 的 Primary 节点负责负载均衡
MongoDB 3.2及以前版本里,分片集群的负载均衡由 mongos 负责,多个 mongos 会抢一个分布式锁,抢锁成功的 mongos 会对执行负载均衡任务,在 shard 间迁移 chunk;在3.4版本里,负载均衡将由 Config server 的 Primary 节点负责,预计会在负载均衡并发度及效率上会有大的提升。
不再支持 SCCC Config server 的模式
MongoDB 3.2版本引入了复制集模式的 Config Server(CSRS 模式),在此之前,Config server 由多个镜像的单节点组成(SCCC模式),3.4版本里,MongoDB 将不再支持 SCCC模式的 Config server。
所以往 3.4 版本升级时,如果Config server 还是 SCCC 模式,需要先升级为 SCRS 模式。
Sharding Zones
分片集群里引入了 Zone 的概念,主要取代现在的 tag-aware sharding 机制,能将某些数据分配到指定的一个或多个 shard 上,这个特性将极大的方便 sharding cluster 的跨机房部署,详细了解 Sharding zone 机制。
复制集(Replica Set)
majority WriteConcern 支持配置是否刷 journal
配置复制集时,增加 writeConcernMajorityJournalDefault 选项,默认为 true,即当指定 WriteConcern 为 majority 时,数据写到大多数节点并且 journal 成功刷盘后,才向客户端确认成功;如果为 false,数据写到大多数节点的内存,就向客户端确认。
支持配置 Primary 追数据的时间
配置复制集时,增加 catchUpTimeoutMillis 选项,默认为2s,来指定新选举出来的 Primary 从其它拥有更新数据的节点追数据的时间,增加该时间能最大限度的减少需要 rollback 的数据,但可能增加整个 failover 的时间,该选项只能在 protocolVersion 为1时使用。
支持 Linearizable Read Concern
“linearizable” Read Concern 级别保证,一定能读到 WriteConcern 为 majority,并且确认时间在读请求开始之前的数据,该级别仅在查询结果只有单个文档的情况下有效。
Decimal Type
MongoDB 3.4 新增对decimal128 format的支持,最多支持34位小数位。
跟 Double 类型不同,decimal 数据存储的是实际的数据,无精度问题,以9.99为例,decimal NumberDecimal(“9.99″) 的值就是9.99; 而 Double 类型的9.99则是一个大概值 9.9900000000000002131628….
Aggregation
MongoDB 在3.4版本增加了大量的 aggregation 操作符,功能更加强大了,举几个例子
bucket 能对方便的对数据进行分类
$grahpLookup 在 3.2的$lookup 的基础上更进一步,能支持更复杂的关系运算了。
$addFields 使得文档操作更丰富了,比如将某些字段求和存储为新的字段。
详细的介绍请参考Aggregation部分
Collation and Case-Insensitive Indexes
MongoDB 3.4 开始支持 collation,在之前的版本里,文档里存储的字符串,不论是中文还是英文,不论大小写,一律按字节来对比,引入 collation 后,支持对字符串的内容进行解读,可以按使用的 locale 进行对比,也支持对比时忽略大小写。
create、createIndexes、find、aggregate 等涉及字符串操作的命令都支持 collation。
视图(Views)
MongoDB 3.4里增加了对只读视图的支持,视图将集合里满足某个查询条件的数据虚拟成一个特殊的集合,用户可以在特殊的集合上做进一步的查询操作。
安全提升(Security Enhancement)
MongoDB 3.4 支持轮转的将复制集、或分片集群的各个节点开启鉴权,不需要停服务,详细步骤参考Enforce Keyfile Access Control in a Replica Set without Downtime
工具(MongoDB Tools)
MongoDB 3.4 引入 mongoreplay 工具,可用于监控并记录 mongod 上执行的命令并 replay 到另一个 mongod 实例上,该工具可用于代替 mongosniff。
General Enhancements
支持 systemd
降低默认的 wiredtiger cache 配置
Changes Affecting Compatibility
可能影响兼容性的修改
升级步骤(Upgrade Procedures)
单节点升级到 3.4
复制集升级到 3.4
分片集群升级到 3.4
[C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)的更多相关文章
- MongoDB 可视化管理工具
MongoDB 可视化管理工具 (2011年10月-至今) 正文 该项目从2011年10月开始开发,知道现在已经有整整5年了.MongoDB也从一开始的大红大紫到现在趋于平淡.MongoCola这 ...
- MongoDB 可视化管理工具 MongoCola-1.1.0 测试版发布
首先,感谢大家对于本工具的支持. 经过一周的努力,最新版的工具测试版出炉了,这个版本是一个很重要的版本. 为什么说这个版本重要?以前的工具,只支持一个视图窗口,也就是说了,一次只能看一个数据集的数据. ...
- MongoDB Compass管理工具下载、安装和使用
内容来自:https://jingyan.baidu.com/article/925f8cb884f6f8c0dce0565a.html ,https://blog.csdn.net/bg101775 ...
- MongoDB 生态 – 可视化管理工具
工欲善其事,必先利其器,我们在使用数据库时,通常需要各种工具的支持来提高效率:很多新用户在刚接触 MongoDB 时,遇到的问题是『不知道有哪些现成的工具可以使用』,本系列文章将主要介绍 MongoD ...
- 安装window下的redis,redis可视化管理工具(Redis Desktop Manager)安装,基础使用,实例化项目
以下包括内容: 一.redis下载安装,启动 二.Redis可视化管理工具(Redis Desktop Manager)安装 三.实例化项目 一.redis下载安装,启动 1,redis官方下载地址: ...
- Ubuntu下的MongoDB GUI 可视化管理工具
目录 1 Robo 3T 2 NoSQLBooster for MongoDB(收费) 3 JetBrains Plugin Repository :: Mongo Plugin Ubuntu下的Mo ...
- scrapy可视化管理工具spiderkeeper使用笔记
http://www.scrapyd.cn/doc/156.html 入门中文教程 spiderkeeper是一款开源的spider管理工具,可以方便的进行爬虫的启动,暂停,定时,同时可以查看分布式 ...
- 最佳的MongoDB客户端管理工具
<最佳的MongoDB客户端管理工具> 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一个好的MongoD ...
- docker学习(三) 安装docker的web可视化管理工具
1.docker是一个一款很轻便的应用容器引擎,为了更好的管理和使用docker,使用web可视化管理工具似乎更符合大多数人的需求.在这里,我给大家分享下自己使用过的几款web工具:docker UI ...
随机推荐
- 讓TQ2440也用上設備樹(1)
作者:彭東林 郵箱:pengdonglin137@163.com QQ:405728433 開發板 TQ2440 + 64MB 內存 + 256MB Nand 軟件 Linux: Linux-4.9 ...
- JDK动态代理
一.基本概念 1.什么是代理? 在阐述JDK动态代理之前,我们很有必要先来弄明白代理的概念.代理这个词本身并不是计算机专用术语,它是生活中一个常用的概念.这里引用维基百科上的一句话对代理进行定义: A ...
- bzoj1079--记忆化搜索
题目大意:有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个木块涂相同色显得 ...
- java中易错点(二)
java,exe是java虚拟机 javadoc.exe用来制作java文档 jdb.exe是java的调试器 javaprof,exe是剖析工具 解析一: sleep是线程类(Thread)的方法, ...
- GitHub管理代码-随笔
公司一直用的SVN进行项目管理,平时便自己折腾了下Git,这里做下GitHub的最简单的记录... 在git上创建仓库等就免谈了,网上也有好多教程,直接从创建之后记录: 在github的readme文 ...
- DDD设计中的Unitwork与DomainEvent如何相容?
最近在开发过程中,遇到了一个场景,甚是棘手,在这里分享一下.希望大家脑洞大开一起来想一下解决思路.鄙人也想了一个方案拿出来和大家一起探讨一下是否合理. 一.简单介绍一下涉及的对象概念 工作单元:维护变 ...
- 机器指令翻译成 JavaScript —— No.3 流程分割
上一篇 我们讨论了跳转指令,并实现「正跳转」的翻译,但最终困在「负跳转」上.而且,由于线程模型的差异,我们不能 1:1 的翻译,必须对流程进行一些改造. 当初之所以选择翻译,而不是模拟,就是出于性能考 ...
- Xamarin开发Android应用打包apk
Visual Studio中用Xamarin开发Android应用,生成apk文件有3种方法 1.debug时,代码目录下bin\Debug中会自动生成调试用***-Signed.apk文件,但是文件 ...
- 从淘宝 UWP 的新功能 -- 比较页面来谈谈 UWP 的窗口多开功能
前言 之前在 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记 这篇随笔中介绍了一下 UWP 淘宝的“比较”新功能呱呱坠地的过程.在鲜活的文字背后,其实都是程序员不眠不休的血泪史(有血有泪有史) ...
- Android开发学习之路-DiffUtil使用教程
谷歌最近更新了Support Library 24.2.0,而DiffUtil就是在这个版本添加的一个工具类. DiffUtil是一个查找集合变化的工具类,是搭配RecyclerView一起使用的,如 ...