热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用mongocola操作MongoDB数据库

前言在开始正文之前,感谢博客园的Nosql爱好者对于MongoCola工具的试用(使用)。特别感谢呆呆这位朋友的Bug报告,让我纠正了一个很严重的Bug。同时也感谢以前的多个网友在博客留言中给我的意见,建议,以及BUG的修正方案。这个工具的进步离不开你们的贡献
前言

     在开始正文之前,感谢博客园的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就可以进行服务器的启动了。

正常启动的Dos界面

 使用工具监视操作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还比较粗糙,有时间再改了。。。。

    (不知道有没有朋友 对于 绘制自定义TreeView 有经验吗,能不能帮忙绘制一下Node的连线和前面的加减号,我画得不是很好)

这里_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

 未完待续
推荐阅读
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 在OpenShift上部署基于MongoDB和Node.js的多层应用程序
    本文档详细介绍了如何在OpenShift 4.x环境中部署一个包含MongoDB数据库和Node.js后端及前端的多层应用程序。通过逐步指导,读者可以轻松完成整个部署过程。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案
    MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ... [详细]
  • MongoDB核心概念与基础知识解析
    MongoDB 是一种基于分布式文件存储的非关系型数据库系统,主要采用 C++ 语言开发。本文将详细介绍 MongoDB 的核心概念和基础知识,包括其与传统 SQL 数据库的区别,数据库及集合的基本操作,如数据的插入、更新、删除和查询等。通过本文,读者可以全面了解 MongoDB 的基本功能及其应用场景。 ... [详细]
  • MongoVUE基础操作指南:轻松上手数据库管理
    本文介绍了MongoVUE的基础操作,旨在帮助用户轻松掌握数据库管理技巧。MongoVUE是一款功能强大的MongoDB客户端工具,虽然需要注册,但其用户友好的界面和丰富的功能使其成为许多开发者的首选。文中详细解释了安装步骤、基本配置以及常见操作方法,并对一些常见的问题进行了修正和补充,确保用户能够快速上手并高效使用MongoVUE进行数据库管理。 ... [详细]
author-avatar
倍儿傻的叶子奇太_900
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有