MongoCola使用教程 1 - MongoDB的基本操作和聚合功能---Mongdb客户端软件操作说明
前言
在开始正文之前,感谢博客园的Nosql爱好者对于MongoCola工具的试用(使用)。特别感谢 呆呆 这位朋友的Bug报告,让我纠正了一个很严重的Bug。同时也感谢以前的多个网友在博客留言中给我的意见,建议,以及BUG的修正方案。这个工具的进步离不开你们的贡献。最新版的MongoCola为1.13.主要改进了一些视觉效果上的东西,毕竟这个工具不是个人的工具了,在保证品质的前提下,也要考虑到美观和易用性了。
如何得到MongoDB
MongoDB是一个开源的项目,你可以从GitHub上获取MongoDB的源代码,当然对于大部分用户来说,我们并不需要源代码,直接下载可执行的文件即可。最新版的MongoDB是2.0.4.
你可以从MongoDB的官方网站下载。 官方网站下载地址:http://www.mongodb.org/downloads
温馨提示:各种平台的版本很多,请选择正确的版本下载。
下载后的文件是一个压缩包,直接解压就可以了。解压后,你会看到若干个 EXE 可执行文件,其中 mongod.exe 是重点文件(Mongo device)启动新的Mongo服务器必须要用到这个。
如何启动一个MongoDB服务器
启动一个MongoDB服务器的实例,有很多方法,这里将一个最简单的方法(注意,不是最合适的方法)。这个方法非常适合我们学习者使用。
首先,请准备好一个目录,用于存放MongoDB的数据库文件。例如 C:\mongodb\master 这样的目录。MongoDB的数据库文件和日志文件等等都会生成在这个目录下面。
确保了目录已经存在后,我们可以在DosCommand里面启动一个MongodB服务器了。(我想大部分在这里的人是知道如何启动DosCommand命令行的)
然后依次输入以下两条命令:(我们假设你的mongod.exe放在C:\runmongo\bin 文件夹里面了)
cd C:\runmongo\bin
mongod --port 28018 --dbpath C:\mongodb\master --master --rest --journal
第一条指令是将工作目录切换到Mongo的Bin下面,第二条命令是启动一个Mongodb的服务器。 启动命令的详细细节,暂时不介绍,请大家试试看能不能启动。(这里我选择了28018这个端口作为Mongodb的TCP/IP端口,一般建议使用10000以上的端口)。
一般,我会将这两条命令放在一个扩展名为 .bat 的批处理文件里面,以后只需要执行这个批处理文件就可以了。例如 你可以新建一个名为master.bat的文件,然后将这两句指令保存到这个文件中,以后通过双击master.bat就可以进行服务器的启动了。
使用工具监视操作MongoDB
你可以使用Mongo原生的命令行工具来监视和操作MongoDB,也可以使用各种MongoDB的工具来操作MongoDB。这里我使用自己开发的工具来监视和操作MongoDB。
1.启动MongoCola:如果你是第一次使用MongoCola,先选择界面语言。由于工具是面向全球的,所以使用英语为默认语言。当然,你可以选择 中文 为界面语言,
然后,请设定一下你的Mongo的可执行文件的路径,软件的一些功能需要使用一些原生的可执行文件
例如我的路径是C:\runmongo\bin 当然,你也可以在以后进行设置。不过强烈建议一开始就设置。不然影响部分功能的使用。
2.接下来,我们新建一个数据库连接。
由于第一次使用,所以没有任何登录过的连接。首先,我们新建一个新的连接。
一个最最基本的链接,只需要Host名称和Port就可以了。我将这个链接的名字定为 Master,然后由于是本地的服务器,所以Host就填为localhost,端口是28018.
设定好了以后,可以按下Test来测试一下是否设置正确,或者直接按下 Add 来登录一个新的连接。
OK,登录好了之后,在连接管理面板里面双击这个链接,就可以打开主界面了。(你也可以选中一个链接,然后按下OK按钮)。
【注意:密码将以明文形式放入Config.xml文件中】
界面基本介绍
界面分为左右两个区域,左边的是连接列表(通常1个连接代表一个服务器,但是连接的概念和服务器的概念并不是等价的)。你可以在这个区域里面看到服务器的大致结构,例如数据库和数据集的整体状况。右边是各种数据库对象的详细信息表示区域,这里可能显示一个数据集的记录,或者显示文件系统和用户系统。在初始化的状态下,这里显示当前连接的状态。
这里我们看到服务器下面有一个local的数据库,现在他是我们唯一拥有的数据库。local数据库下面没有 User,没有GFS(文件系统),没有Javascript文档,没有系统和普通的数据集。说到底,什么都没有。。。
由于local是系统数据库,软件认为不能由用户来操作,所以,我们先要新建一个数据库。我们选中服务器的图标,然后从右键菜单中选择 新建数据库(createNewDatabase),输入数据库名称之后,一个新的数据库就建成了。(由于已经知道的Mongodb的Bug,请使用英文作为数据库名称)。作为例子,我新建了一个Cnblogs的数据库。然后选中这个数据库,右键菜单里面有新建数据集的菜单项(Create New Collection)。
这里的数据集名称,也暂时不要使用中文。关于使用中文数据集名称的Bug,我已经报告Mongo官方了,但是现在还没有修正好。Bug票:https://jira.mongodb.org/browse/SERVER-4412
一般用户,直接填写数据集名称就可以了,一些高级选项,请在知道确切含义后选择。特别是Iscapped属性,用这个属性后,数据集里面的文档(数据)可能无法修改。好了,我们新建一个NoSql的数据集。
如果没有问题,左边的数据库一览的Cnblogs下面将会有一个Nosql数据集挂在一般数据集下面。由于使用了索引,系统数据集里面也会有一个System.index数据集。双击一下这个数据集看看。右边的数据视图将会展示数据集内容,当然现在什么都没有。
尝试加入第一个文档
OK,接下来我们加入一条数据到数据集中,Mongo里面将数据记录叫做 文档。按下工具栏的第一个图标,添加一个文档吧。
这里我们使用Json作为描述文档的语言,它看起来像这样
{
"Name":"MongoDB","Type":"Nosql"
}
注意:一般我们不用(不能输入)_id这个索引字段,这个是Mongo自动维护的字段。这里我们添加两个字段,一个是Name,值是MongoDB,一个是Type,值是Nosql。
插入成功后,你可以看到第一条记录了。由于时间问题,TreeListView还比较粗糙,有时间再改了。。。。
这里_id是系统自动生成的主键。(一般情况下,这个id不会重复,不过,通过一些方法,是可以让这个id重复的。。。。O(∩_∩)O~)
软件为你准备了3种视图来查看数据:树形视图,列表视图,和Json文本视图。
聚合功能
介绍这个功能前,我们现在数据库里面追加一些数据吧。
我们一共有4条数据,2条Nosql的,2条Sql的数据。
数据统计:Count
这个功能很简单,就是看看数据集里面的文档(数据)件数。
从左边的服务器视图中,选中数据集,在右键菜单中选中聚合(aggregation)菜单项里面的Count功能,记录条数就会以弹出框的形式告诉用户。
数据统计:Distinct
启动Distinct的方法和Count一样,在右键菜单中选中聚合(aggregation)菜单项里面的Distinct功能。这个时候,你需要在弹出窗体里面选择你需要做Distinct的字段名称了。
如果我们以Name做Distinct,结果是4件记录,如果我们以Type做Distinct,结果是2件记录。看了下面的图,我想各位都知道这个结果是怎么得出来的了。
数据统计:Group和MapReduce
暂时不做说明。
简单的查询功能
Nosql的查询功能一直是一个软肋,这里我开发了一个简单的查询器。
例如,我想查找所有的Nosql的数据。那么我们可以使用查询功能,你可以在视图的工具栏里面按下那个双筒望远镜的图标。
然后进行如下设置即可。字段是下拉表里面选中的Type,EQ表示“等于”的意思,然后类型是BsonString,需要等于的值是 “Nosql”
执行这个过滤器后数据就只有2条被表示到数据视图中了。(这个时候如果再使用聚合的话,结果将默认建立在这个过滤器的基础上,这个时候做Count,结果是2)
你可以使用工具栏上的 过滤器图标来切换 数据过滤的启停状态。注意:id字段比较特殊,不能屏蔽。
如何得到Mongocola1.13
你可以从Github下载本软件:https://github.com/magicdict/MagicMongoDBTool/downloads
本软件是开源软件,所以没有任何功能限制。
MongoCola 最新版本:1.13 Mongodb 最新版本 2.0.4 C# Driver 最新版本 1.3.1
MongoCola使用教程 1 - MongoDB的基本操作和聚合功能---Mongdb客户端软件操作说明的更多相关文章
- MongoCola使用教程 2 - MongoDB的Replset 初始化和配置
前言 首先再次感谢博客园的各位朋友.正是你们的关注才让我有信心将这个工具开发下去. 这周同样也有热心网友对于MongoCola存在的问题给予了反馈. 这次工具更新到了版本1.20,强化的地方是增加了R ...
- mongodb的基本操作与插入文档(document)
一.mongodb的基本操作: 1.查看mongodb当前所有的databases : show dbs 2.选择数据库(database) : use databaseName(该数据库不存在则会自 ...
- MongoDB入门三步曲2--基本操作(续)--聚合、索引、游标及mapReduce
mongodb 基本操作(续)--聚合.索引.游标及mapReduce 目录 聚合操作 MapReduce 游标 索引 聚合操作 像大多关系数据库一样,Mongodb也提供了聚合操作,这里仅列取常见到 ...
- 【网络爬虫入门05】分布式文件存储数据库MongoDB的基本操作与爬虫应用
[网络爬虫入门05]分布式文件存储数据库MongoDB的基本操作与爬虫应用 广东职业技术学院 欧浩源 1.引言 网络爬虫往往需要将大量的数据存储到数据库中,常用的有MySQL.MongoDB和Red ...
- MongoDB之基本操作与日常维护
MongoDB基本操作 MongoDB的基本操作主要是对数据库.集合.文档的操作,包括创建数据库.删除数据库.插入文档.更改文档.删除文档.和查询文档. 操作 描述 show dbs 查看当前实例下的 ...
- 孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5
孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongo ...
- 孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4
孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十一天. 今天继续学习mongoDB的简单操作 ...
- 孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3
孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十天. 今天继续学习mongoDB的简单操作, ...
- 孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2
孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第九天. 今天继续学习mongoDB的简单操作, ...
随机推荐
- phalcon—— PHP基础知识(一)
一.变量和常量 1.1.变量名(标示符) 1)变量:$开头标志 2)变量名:能够由字母.数字,_ 3者组成,不能用数字开头 3)标识符是区分大写和小写的.但函数名不区分大写和小写. 4)变量名称能够与 ...
- apache错误 Unable to open process" with PID 4!
今天打开Apache的时候报错: 22:15:30 [Apache] Problem detected! 22:15:30 [Apache] Port 80 in use by "Una ...
- 14链表中倒数第k个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路: 快慢指针 快指针 先走k 步, 然后快慢指针一起走 当快指针走到null 时, 慢指针就是所求的倒数第k个节点 tips: 判断k是否 ...
- pt-osc原理
pt-osc原理 1.检查设置环境 测试db是否可连通,并且验证database是否存在 SET SESSION innodb_lock_wait_timeout=1 //InnoDB事务等待行锁的超 ...
- Django学习笔记之Ajax入门
AJAX准备知识:JSON 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JS ...
- C++ 之虚函数的实现原理
c++的多态使用虚函数实现,通过“晚绑定”,使程序在运行的时候,根据对象的类型去执行对应的虚函数. C++ 之虚函数的实现原理 带有虚函数的类,编译器会为其额外分配一个虚函数表,里面记录的使虚函数的地 ...
- CNNIC成为首家UASG中国联络站
1月29日,在“2018中国域名大会暨中国互联网络信息中心(CNNIC)行业合作伙伴年会”上获悉,CNNIC日前正式完成与互联网名称与数字地址分配机构(ICANN)的签约,成为首家UASG(普遍接受指 ...
- I方法怎么不能获取多选框的数据
前端代码 <input type="checkbox" name="m_name" value="{$vo.name}" class ...
- 远程桌面.【转】Win10 家庭(home)版启用远程桌面(Remote Desktop)功能
ZC:YeJun的台式机是 Win10家庭版,默认我们想连上她的电脑是连不上的,用下面的方式,我的笔记本可以连上了 ZC:我的下载资料,存放于 "E:\BaiduYunDownload\Wi ...
- scala学习手记40 - 使用case类
前面两节我们已经多次接触过case关键字了.case关键字不仅可以用在match/case中来执行模式匹配,也可以用来修饰类.不过用case修饰的类也主要是用来做模式匹配.在上一节曾经提到过match ...