MongoDB学习笔记~客户端命令行的使用

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一下mongo这个客户端命令行工具的使用。

测试环境:服务端:linux版的mongod 2.6.9

              客户端:window版的mongo 2.6.9

下面介绍一些常用的命令

1 建立一个新的链接

var x=new Mongo("192.168.2.4:27017")

2 显示所有数据库

show dbs

3 指定当前要使用的数据库

var db=x.getDB("background")

4 得到当前数据库的名称

db.getName()

5 得到数据库的所有集合

db.getCollectionNames()

6 得到数据库中集合的详细信息

db.getCollectionInfos()

7 得到指定的集合

db.getCollection("background")

8 得到集合中元素的数量

db.getCollection("background").count()

9 得到服务器相关信息

db.hostInfo()

10 得到当前Mongo服务器的连接信息

db.getMongo()

11 为排序和查询的字段添加索引

了解数据库的朋友对索引应该不会陌生吧,当数据量比较小时,它起不到什么作用,当数据量大时500W以上,你的字段就需要加索引了,性能提升相当的明显,如果你不加,那你就等着昙花开吧,呵呵!

db.TableName.ensureIndex({FieldName:1})//1为升序,-1为降序
db.TableName.getIndexes()

12 删除索引

db.TableName.dropIndex({"LoginName":1})

13 查看数据表的状态,同步显示分片的状态和每个片被命中的数量

db.WebManageUsers.stats()

14 查看数据库的状态,它会把相关分片的信息显示出来

db.stats()

15 在路由服务器查询分片完整的信息

var db=x.getDB("admin");
db.runCommand({listshards:1});//需要在admin数据库下

16 设置数据库的分片状态,让它生效

#指定databaseName分片生效
db.runCommand( { enablesharding :"databaseName"});

17 设置数据库下的数据表(Collection)分片状态,让它生效

#指定数据库里需要分片的集合和片键
db.runCommand( { shardcollection : "databaseName.tableName",key : {_id: 1} } )

18 对数据表进行分组

db.tableName.aggregate([{ "$group" : { "_id" : "$DepartmentID", "userCount" : { "$sum" : 1 } } }])

19 分组第二种方法group强大命令

db.M_Partner_Footprints.group({
    key: function (doc) { PartnerInfoID: true },//分组的key
    cond: { PartnerInfoID: 6, Login: { ClientType: 0 } },//条件过滤
    initial: { "count": 0 },
    reduce: function (doc, out) {//聚合方式
        out.count += 1;
    },
    finalize: function (out) {//结果处理
        return out;
    }
});

20 group对多个字段进行分组,使用keyf函数来实现

db.M_User_Footprints.group({
    keyf: function (doc) { return { UserInfoID: doc.UserInfoID, TeacherID: doc.TeacherID } },
    cond: { UserInfoID: 6, Type: 6 },
    initial: { "count": 0 },
    reduce: function (doc, out) {
        out.count += 1;
    },
    finalize: function (out) {
        return out;
    }
})

22 使用aggregate进行聚合操作

db.M_User_Footprints.aggregate([{ $group: { _id: "$UserInfoID", num_tutorial: { $sum: 1 } } }])

23 管道,MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。

一 $project选择指定的列,_id被默认选中

db.M_User_Footprints.aggregate(
    {
        $project: {
            UserInfoID: 1,
            TeacherID: 1,
        }
    }
 );

二 $match选择某个范围的数据,并将结果传到下一个管道中

db.M_User_Footprints.aggregate([
                        { $match: { UserInfoID: { $gt: 1, $lte: 100 } } },
                        { $group: { _id: null, count: { $sum: 1 } } }
]);

各位对索引一定要引起重视,因为在大数据情况下,如果没有索引,在进行排序,查询等操作时就引发全表扫描,那代价是非常大的!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:MongoDB学习笔记~客户端命令行的使用,如需转载请自行联系原博主。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
NoSQL 安全 MongoDB
Mongo DB之用户与权限管理、备份与恢复管理以及客户端工具的使用
MongoDB是一款灵活且高性能的文档型数据库,具有可扩展性和强大的查询功能,适用于各种应用场景。
881 1
|
8天前
|
SQL NoSQL 数据可视化
你的mongodb客户端是哪个呢?
MongoDB 是一种流行的文档数据库,支持多种应用场景。常用的客户端管理工具包括: 1. **MongoDB Shell**:现代命令行界面,提供语法高亮、自动完成等功能。 2. **MongoDB Compass**:图形化界面,支持可视化查询、聚合框架、多平台运行和实时性能监控。 3. **Studio 3T**:企业级工具,支持SQL查询、代码生成、数据导入导出和高级安全功能。
49 14
|
7月前
|
JSON NoSQL MongoDB
mongodb 命令行连接及基础命令
mongodb 命令行连接及基础命令
|
7月前
|
SQL NoSQL MongoDB
选对 MongoDB 客户端:从初学者到专业级很重要!
选择 MongoDB 客户端时,NineData 是一个高效、便捷的解决方案。它提供直观、易用的图形界面,支持多种数据查看方式,使非技术背景的用户也能轻松管理和操作 MongoDB 数据源。此外,NineData 还支持命令行模式,满足不同用户的习惯和需求。 对于企业用户,NineData 提供了 SQL 开发企业版,具备企业级数据安全和团队协同能力,支持权限管控、审计日志、SSO 单点登录等能力,助力企业提升核心竞争力。
274 0
|
7月前
|
NoSQL 数据可视化 Linux
第7期 MongoDB GUI可视化客户端管理工具
第7期 MongoDB GUI可视化客户端管理工具
992 0
|
NoSQL MongoDB 数据库
mongodb使用使用 SCRAM 验证客户端设置访问控制
SCRAM 验证客户端设置访问控制
113 0
|
存储 JSON NoSQL
【BackEnd--Mongodb】学习笔记(完整详细版)
MongoDB是一种面向文档的非关系型数据库,所谓的面向文档是一种类似JSON的结构,因此可以简单理解MongoDB存储的是各种各样的JSONMongoDB可以快速开发web型应用,因为存储的是JSON格式,因此无需像关系型数据库那样需要建表,非常的的灵活。
272 0
|
NoSQL 关系型数据库 MySQL
|
NoSQL 算法 Linux
MongoDB学习笔记(五) 集群搭建之副本集
MongoDB学习笔记(五) 集群搭建之副本集
418 0
|
NoSQL Linux MongoDB
MongoDB学习笔记(四) 集群搭建之主从复制
MongoDB学习笔记(四) 集群搭建之主从复制
604 0