`
starbhhc
  • 浏览: 654408 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

2.mongdb mongdb客户端使用

 
阅读更多

robomongo,命令行方便,平时查询用。

mongoVUE,调试的时候方便,不用每次都自己写 .explain()以上两个混用中……

 

 mongodb是一款经典的nosql数据库,在庞大的业务体系中,我们经常会要求我们的数据库系统端有多条可选的数据库分支,使得不同的数据库系统能够满足不同种类的业务需求。比如有密集型高并发的需求,快速响应的需求,大量持久存储的需求等等。mongodb性能非常好,很好地支持了高用户量的需求,目前很多数据库系统在使用它。

 

robomongo使用:

Robomongo嵌入相同的JavaScript引擎(基于Mozilla的SpiderMonkey的),权力MongoDB的蒙戈外壳。这意味着您可以重用现有的技能 MongoDB的壳牌 Robomongo!

Robomongo为您提供了语法高亮显示,自动完成,不同的视图模式(文字,树,自定义)和更多。

提示!选择任何部分代码,然后按CTRL +输入。只有选定的代码将被执行。

多壳
打开你需要尽可能多的炮弹。每个标签在Robomongo - 是一个MongoDB的外壳,完全相互隔离的。
单一的MongoDB数据库,或许多炮弹的许多不同的数据库,你可以有很多打开的贝壳。
提示!按Ctrl + T键打开新的shell,基于currenly打开。

多个结果
Robomongo执行你的代码在声明中陈述的方式。这意味着,您将收到尽可能多的结果你有许多语句。
该功能可以帮助你,例如,当你想查看和分析文件并排。
提示!按F10切换结果从垂直到水平方向。

自动完成
Robomongo为您提供自动完成的所有对象(功能),被称为JavaScript运行,包括自动完成数据库,集合,甚至你的文档对象。
要协助Robomongo自动完成 - 执行你的代码。这将使你的对象,JavaScript运行,并自动完成工作,甚至您的自定义功能和文件。
提示!要看到任何JavaScript函数的代码,只需键入其名称和执行(按Ctrl + Enter键)

 

下载地址:http://www.newasp.net/soft/75669.html  

直接安装,安装完后

启动Robomongo,File->Connect,在MongoDB Connections窗口点击create新建一个数据库系统连接。

在Connection界面:address写上localhost(如果你定向到本地的话,或者127.0.0.1),端口就是27017。

在Authentication界面:

这里要注意的一点,mongodb默认不开启用户验证,在不开启用户验证的情况下,不需要登陆用户和用户验证即可访问数据库,如果你不需要使用用户验证,只想先测试一下数据库,就不要勾选Perform authentication,然后连接即可。

但如果你想进行用户验证,你要保证在数据库系统的管理员数据库admin中有一个可用的账号(否则还是不会开启用户验证,没有账号你怎么获得所有权限呢),并且在启动mongodb服务时,在启动参数里加上"--auth":

mongod --dbpath d:/data/db --auth

 

 

此时勾选Perform authentication,并输入正确的账号密码,然后选择连接。

 

PS:你可以先不使用用户验证,在admin新建账号密码,重新用开启用户验证的方式启动mongod。

 

shell命令:

在Robomongo中,你可以右键一个数据库开启它的shell,然后在shell中输入命令Ctrl+Enter运行,这部分就和shell中的命令一样,你可以做所有你想要做的操作,其他方便的操作等待你去挖掘。

 这样,你就可以在shell界面操作你的数据了

进入安装目录的bin目录下,运行 mongo.exe 进入shell命令。

 

 

MongoDB命令帮助系统 

1.在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控。看一下MongoDB的命令帮助系统:

输入:help

 

2.这是MongoDB最顶层的命令列表,主要告诉我们管理数据库相关的一些抽象的范畴:数据库操作帮助、集合操作帮助、管理帮助。如果你想了解数据库操作更详细的帮助命令,可以直接使用db.help(),

 

3.对数据库进行管理和操作的基本命令,可以从上面获取到。如果想要得到更多,而且每个命令的详细用法,可以使用上面列出的db.listCommands()查询。另一个比较基础的是对指定数据库的集合进行操作、管理和监控,可以通过查询db.mycoll.help()获取到:

 

4.有关数据库和集合管理的相关命令,是最基础和最常用的,如集合查询、索引操作等。查看数据库服务器的状态:db.serverStatus() 

 

5、查询指定数据库统计信息
db.stats()
 
6、查询指定数据库包含的集合名称列表
db.getCollectionNames()
 
 
 
 

创建索引

可以使用集合的ensureIndex(keypattern[,options])方法,示例如下所示: 

复制代码
1 > use pagedb
2 switched to db pagedb
3 > db.page.ensureIndex({'title':1, 'url':-1})
4 > db.system.indexes.find()
5 { "name" : "_id_", "ns" : "pagedb.page", "key" : { "_id" : 1 }, "v" : 0 }
6 { "name" : "_id_", "ns" : "pagedb.system.users", "key" : { "_id" : 1 }, "v" : 0}
7 { "_id" : ObjectId("4ef977633c1fc4613425accd"), "ns" : "pagedb.page", "key" : {"title" : 1, "url" : -1 }, "name" : "title_1_url_-1", "v" : 0 }
复制代码

 上述,ensureIndex方法参数中,数字1表示升序,-1表示降序。

 

使用db.system.indexes.find()可以查询全部索引。

1、查询索引

我们为集合建立的索引,那么可以通过集合的getIndexes()方法实现查询,示例如下所示: 

复制代码
 1 > db.page.getIndexes()
 2 [
 3         {
 4                 "name" : "_id_",
 5                 "ns" : "pagedb.page",
 6                 "key" : {
 7                         "_id" : 1
 8                 },
 9                 "v" : 0
10         },
11         {
12                 "_id" : ObjectId("4ef977633c1fc4613425accd"),
13                 "ns" : "pagedb.page",
14                 "key" : {
15                         "title" : 1,
16                         "url" : -1
17                 },
18                 "name" : "title_1_url_-1",
19                 "v" : 0
20         }
21 ]
复制代码

当然,如果需要查询系统中全部的索引,可以使用db.system.indexes.find()函数。

2、删除索引

 删除索引给出了两个方法: 

1         db.mycoll.dropIndex(name)
2         db.mycoll.dropIndexes()

第一个通过指定索引名称,第二个删除指定集合的全部索引。

 

3、索引重建

可以通过集合的reIndex()方法进行索引的重建,示例如下所示:

 

use fragment

db.baseSe.count()
统计结果,如下所示: 

1 > use fragment
2 switched to db fragment
3 > db.baseSe.count()
4 36749

上述统计了数据库fragment的baseSe集合中记录数。

4、查询并统计结果记录数

 use fragment

db.baseSe.find().count()

find()可以提供查询参数,然后查询并统计结果,如下所示: 

 

5、查询指定数据库的集合当前可用的存储空间

use fragment
> db.baseSe.storageSize()
142564096

6、查询指定数据库的集合分配的存储空间

> db.baseSe.totalSize()

144096000

上述查询结果中,包括为集合(数据及其索引存储)分配的存储空间。

(三)启动与终止 

1、正常启动
mongod --dbpath /usr/mongo/data --logfile /var/mongo.log
说明:
指定数据存储目录和日志目录,如果采用安全认证模式,需要加上--auth选项,如:
mongod --auth --dbpath /usr/mongo/data --logfile /var/mongo.log 
2、以修复模式启动
mongod --repair
以修复模式启动数据库。
实际很可能数据库数据损坏或数据状态不一致,导致无法正常启动MongoDB服务器,根据启动信息可以看到需要进行修复。或者执行:
mongod -f /etc/mongodb.conf --repair
3、终止服务器进程
db.shutdownServer()
终止数据库服务器进程。或者,可以直接kill掉mongod进程即可。
 

(四)安全管理 

1、以安全认证模式启动
mongod --auth --dbpath /usr/mongo/data --logfile /var/mongo.log
使用--auth选项启动mongod进程即可启用认证模式。
或者,也可以修改/etc/mongodb.conf,设置auth=true,重启mongod进程。
2、添加用户
db.addUser("admin", ",%F23_kj~00Opoo0+\/")
添加数据库用户,添加成功,则显示结果如下所示:
 
db.auth("admin", ",%F23_kj~00Opoo0+\/")
数据库安全认证。认证成功显示结果:
1 {
2         "user" : "admin",
3         "readOnly" : false,
4         "pwd" : "995d2143e0bf79cba24b58b3e41852cd"
5 }

  

如果是认证用户,执行某些命令,可以看到正确执行结果,如下所示:
 
 
4、为数据库写数据(同步到磁盘)加锁
db.runCommand({fsync:1,lock:1})
说明:
该操作已经对数据库上锁,不允许执行写数据操作,一般在执行数据库备份时有用。执行命令,结果示例如下:
 
5、查看当前锁状态
db.currentOp()
说明:
查询结果如下所示:
 
6、解锁
use admin
db.$cmd.sys.unlock.findOne()
说明:
执行解锁,结果如下所示:
 
db.currentOp()
状态信息如下:
 
 

(五)数据备份、恢复与迁移管理 

1、备份全部数据库
mkdir testbak
cd testbak
mongodump
说明:默认备份目录及数据文件格式为./dump/[databasename]/[collectionname].bson
2、备份指定数据库
mongodump -d pagedb
说明:备份数据库pagedb中的数据。
3、备份一个数据库中的某个集合
mongodump -d pagedb -c page
说明:备份数据库pagedb的page集合。
4、恢复全部数据库
cd testbak
mongorestore --drop
说明:将备份的所有数据库恢复到数据库,--drop指定恢复数据之前删除原来数据库数据,否则会造成回复后的数据中数据重复。
5、恢复某个数据库的数据
cd testbak
mongorestore -d pagedb --drop
说明:将备份的pagedb的数据恢复到数据库。
6、恢复某个数据库的某个集合的数据
cd testbak
mongorestore -d pagedb -c page --drop
说明:将备份的pagedb的的page集合的数据恢复到数据库。
7、向MongoDB导入数据
mongoimport -d pagedb -c page --type csv --headerline --drop < csvORtsvFile.csv
说明:将文件csvORtsvFile.csv的数据导入到pagedb数据库的page集合中,使用cvs或tsv文件的列名作为集合的列名。需要注意的是,使用--headerline选项时,只支持csv和tsv文件。
--type支持的类型有三个:csv、tsv、json
其他各个选项的使用,可以查看帮助:
 
mongoexport -d pagedb -c page -q {} -f _id,title,url,spiderName,pubDate --csv > pages.csv
说明:将pagedb数据库中page集合的数据导出到pages.csv文件,其中各选项含义:
-f 指定cvs列名为_id,title,url,spiderName,pubDate
-q 指定查询条件
其他各个选项的使用,可以查看帮助:
 
如果上面的选项-q指定一个查询条件,需要使用单引号括起来,如下所示:
 
否则,就会出现下面的错误:
 
1、基于mongo实现远程连接
 
 
当你已经连接到一个远程的MongoDB数据库服务器(例如,通过mongo连接到192.168.0.184),现在想要在这个会话中连接另一个远程的数据库服务器(192.168.0.197),可以执行如下命令:
 
如果启用了安全认证模式,可以在获取数据库连接实例时,指定认证账号
 
 
 
分享到:
评论

相关推荐

    mongodb-atlas-api-client:一个用于 nodejs 的 mongdb atlas api 客户端

    用于 nodejs 的 mongdb atlas api 客户端。 如何安装 npm install mongodb-atlas-api-client 入门 基本语法是: Atlas API 使用 HTTP 摘要身份验证。 它本质上需要一个用户名和一个密码,这些用户名和密码使用一个...

    MongDB篇.pdf

    MongoDB支持多种语言的客户端,包括Java、Python、C++、Node.js等。 MongoDB中的“分片”是将数据水平切分到不同的物理节点上,这样可以有效地扩展数据库存储容量和提升读写性能。 复制(Replication)是MongoDB中...

    mongodb客户端

    2. 数据浏览:用户可以通过MongoVUE的界面查看数据库中的集合(相当于关系数据库中的表),包括文档结构、数据内容以及统计信息。 3. 文档管理:MongoVUE支持对单个文档的增删改查操作,用户可以直接在界面上输入...

    mongdb.zip windows 官网上有,但是下载速度慢。解压之后就和官网一样

    4. **连接客户端**:使用`mongo`命令行客户端连接到MongoDB服务器,或者使用MongoDB Compass图形界面工具。 5. **数据库操作**:学习基本的MongoDB CRUD(创建、读取、更新、删除)操作,以及如何创建集合、插入...

    MongoDB客户端破解版

    绿色破解版的MongoDB客户端工具.免安装,不是经常看到的13天试用版,是破解的哟

    MongDB测试文档.pdf

    文档中还出现了一些编程和配置的代码片段,虽然由于扫描原因导致部分字符可能识别错误,但这些片段基本上说明了如何使用MongoDB的shell或命令行界面来执行数据库操作,以及如何配置和管理MongoDB的分片集群。...

    mongdb集群部署pdf

    路由节点负责将客户端的请求转发给合适的分片。配置文件`mongos1.conf`中定义了一个路由节点: ```bash configdb=mongohost1:20000,mongohost2:20000,mongohost3:20000 port=28885 chunkSize=100 logpath=/...

    mongdb+GridFS文件上传

    - 首先,客户端将大文件分割成多个块。 - 每个块作为一个文档存储到`fs.chunks`集合中,其中包含文件块的序号和实际数据。 - 元数据(如文件名、大小、元信息等)被存储在`fs.files`集合的一个文档中,记录所有块...

    mongdb分片教程

    - 使用客户端连接到mongos路由器。 - ```shell [root@localhost mongodb]# ./bin/mongo localhost:20000/admin ``` 5. **添加分片**: - 在连接到mongos后,通过运行命令来添加分片。 - ```shell mongos&gt; db...

    mongdb副本集结构的配置

    当客户端发起读写请求时,数据会首先被写入主节点,然后由主节点复制到其他成员。 2. **从节点(Secondary)**:从节点从主节点接收并应用数据更改,保持与主节点的数据同步。它们主要用于备份和读取操作,以分担...

    robo3t_jb51_com.rar

    MongDB客户端工具

    组件使用方法,feign、kafka、mongdb、Seata、swagger、xxl-job

    2. **Kafka**: Kafka是一个分布式流处理平台,常用于实时数据处理和消息传递。它具有高吞吐量、低延迟、持久化、分区和复制等特性。搭建Kafka需要配置Zookeeper集群,然后启动Kafka服务器。使用Kafka时,可以创建...

    Mongdb help 帮助类 源代码

    2. **数据结构**:MongoDB存储数据为BSON(Binary JSON)格式,源代码中可能会有对这种数据结构的操作,如序列化和反序列化。 3. **查询引擎**:MongoDB使用一个高效的查询引擎来处理查询请求。源代码可能包含查询...

    AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录

    项目被分为不同的模块,包括服务器端、Web客户端以及后台管理系统,它们分别位于不同的目录中。 ### 总结 “基于高德地图位置的通讯录”项目综合运用了AngularJS、Node.js、MongoDB以及高德地图API,展示了如何从...

    koa+mongdb+swagger整合

    使用Swagger,开发者可以快速创建交互式的API文档,让客户端开发者更容易理解和使用你的API。 ### 整合过程 1. **安装依赖** 首先,确保你的环境中已经安装了Node.js和npm。然后,为项目初始化并安装所需的依赖: ...

    node.js_Express_MongDB-bc

    标题 "node.js_Express_MongDB-bc" 暗示了这个项目是关于使用 Node.js、Express 和 MongoDB 进行后端开发的。在这个框架下,我们将深入探讨这三个技术,以及它们如何协同工作构建一个现代Web应用。 Node.js 是一个...

    mongoDB非关系型数据库安装以及使用指南

    五、MongoDB的Shell客户端 MongoDB提供了一个交互式的JavaScript shell,用于与数据库进行交互。启动MongoDB shell,输入`mongo`命令。在shell中,你可以执行CRUD操作(创建、读取、更新、删除)和其他数据库管理...

    MongDB分组统计

    总的来说,C#中的MongoDB分组统计是通过构建和执行聚合管道来完成的,这个过程涉及到对MongoDB客户端库的使用、定义过滤条件以及聚合操作,最终得到所需的数据统计结果。对于大规模的数据处理,这样的分组统计功能...

    MongoDB的使用(C#语言环境下)

    然后,我们可以通过客户端获取到指定数据库的引用: ```csharp var database = client.GetDatabase("myDatabase"); ``` 在MongoDB中,数据存储在集合(Collections)中,集合类似于关系型数据库中的表。创建一个集合...

Global site tag (gtag.js) - Google Analytics