昊鼎王五:mongodb用户安全认证详解

Mongodb副本集集群搭建+用户认证(详细步骤) 各位biu贝~~~初次见面,请多指教! 好的,进入正题。。。。 先到官网下载安装压缩包 https://www.mongodb.com/try/download/enterprise 这里选择目前的最新企业版本-5.0.4(就要用最新的,任性) 将压缩包上传至服务器制定目录下 ... 阅读详情

#昊鼎王五:mongodb用户安全认证详解

#1.基础知识:

##1.1.前提:
本文基于:《昊鼎王五:如何配置mongodb集群的用户认证方式及创建访问权限用户?》
https://blog.youkuaiyun.com/haoding205/article/details/82257010

##1.2.验证原理扩展介绍

mongodb支持针对连接的用户验证,使用参数auth打开验证功能:
[root@mongodb2 ~]# mongod -h |grep aut
  --keyFile arg                         private key for cluster authentication
  --noauth                              run without security
                                        authentication. Alternatives are 
  --auth                                run with security
  --autoresync                          automatically resync if slave data is 

为用户创建或者使用内建的指定角色,然后将角色赋予给用户授权,遵循的原则是最小权限原则.mongodb不能直接将权限赋予给用户.
在打开auth之前需至少添加一个管理员用户,然后在添加其它的额外用户,否则mongodb将使用一个本地认证,以便让你可以创建一个管理员账户.
mongodb认证方式有多种,如password认证,kerberos认证,ldap认证等等,这里主要讲的是密码认证,也是用的最多的.

#2.管理用户和角色
##2.1.创建一个管理员用户
在开启验证之前必须创建一个管理员用户,管理员用户拥有userAdminAnyDatabase角色.此角色拥有管理用户的权限,注意此角色并不是最大权限的角色.
我们使用db.createUser()来创建用户,下面例子我们创建一个管理员用户root,密码root:

>use admin
 db.createUser(
  {
    user: "root",
    pwd: "root",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
mongos> 

使用root来登录mongodb:

[root@mongodb3 ~]# mongo --port 37017 -u root -p root --authenticationDatabase admin
 
userAdminAnyDatabase角色拥有如下权限:
changeCustomData
changePassword
createRole
createUser
dropRole
dropUser
grantRole
revokeRole
viewRole
viewUser

##2.2.创建一个超级管理员用户
一些角色提供了间接的或者直接的超级管理员权限.如果一个用户拥有下面三个角色那么可以称之为超级管理员权限
下列角色提供了在任何数据库中分配任何用户权限的能力,这就意味着他们可以分配给自己任何数据库任何权限:

1.dbOwner role, when scoped to the admin database
2.userAdmin role, when scoped to the admin database
3.userAdminAnyDatabase role

例如我们创建一个suq用户,拥有三个角色:

db.createUser(
  {
    user: "suq",
    pwd: "suq",
    roles: [
       { role: "dbOwner", db: "admin" },
       { role: "userAdmin", db: "admin" },
       { role: "userAdminAnyDatabase", db: "admin" }
    ]
  }
)

mongodb还直接提供了一个超级管理员角色root,例如我们创建一个admin用户为超级管理员:

use admin
db.createUser(
  {
    user: "admin",
    pwd: "admin",
    roles: [ { role: "root",db:"admin" }]
 
  }
)

当你使用admin登录mongodb的时候会有提示,不建议用超级管理员登录:

[root@mongodb3 ~]# mongo --port 37017 -u admin -p admin --authenticationDatabase admin
MongoDB shell version: 3.2.6
connecting to: 127.0.0.1:37017/test
Server has startup warnings: 
2016-06-24T18:41:47.116+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2016-06-24T18:41:47.116+0800 I CONTROL  [initandlisten] 

切换用户使用db.auth()方法:

> db.auth("admin","admin")

##2.3.创建角色
角色用来授予给用户来控制用户使用mongodb的资源.mongdb提供了一套内置的角色,管理员可以直接使用这些角色来控制访问mongodb.然而如果这些内置的角色无法满足你的需求,你可以在单独的数据库里创建新的角色.
除了在admin数据库里创建的角色外,创建的的角色只能拥有此数据库内的权限.
在admin数据库内创建的角色,可以继承admin库,其他库,或者集群资源.也就是说在其它库里创建的角色只拥有此库的一些权限.
使用db.createRole()来创建角色.
创建角色你必须有如下两个条件:
1.在数据库有createRole权限
2.你需要有授予指定权限的权限
内建角色userAdmin 和 userAdminAnyDatabase满足上述要求.因此一般以此管理员登录用户来执行.
createRole()的语法如下:

{
  role: "<name>",
  privileges: [
     { resource: { <resource> }, actions: [ "<action>", ... ] },
     ...
  ],
  roles: [
     { role: "<role>", db: "<database>" } | "<role>",
      ...
  ]
}
其中:
role是创建的role的名字.
resource是你想授权所对应的对象,例如resource: { db: "users", collection: "usersCollection" }表示你想把users.userscollection的资源授予给此角色.这里是官网对resource的介绍:https://docs.mongodb.com/manual/reference/resource-document/#resource-document
actions是你想授予的动作,例如actions: [ "update", "insert", "remove" ],这里有官网对action的介绍:https://docs.mongodb.com/manual/reference/privilege-actions/#security-user-actions
roles是表示你想把某个角色授予给此角色.

下面一个实例:

use admin
db.createRole(
   {
     role: "myClusterwideAdmin",
     privileges: [
       { resource: { cluster: true }, actions: [ "addShard" ] },
       { resource: { db: "config", collection: "" }, actions: [ "find", "update", "insert", "remove" ] },
       { resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert", "remove" ] },
       { resource: { db: "", collection: "" }, actions: [ "find" ] }
     ],
     roles: [
       { role: "read", db: "admin" }
     ]
   },
   { w: "majority" , wtimeout: 5000 }
)

下面介绍几个创建角色的例子:
创建一个角色管理当前操作
这个角色可以kill任何操作.以上面的root用户登录mongod:

[root@mongodb3 ~]# mongo --port 37017 -u root -p root --authenticationDatabase admin
use admin
db.createRole(
   {
     role: "manageOpRole",
     privileges:
     [
       { 
        resource: { cluster: true }, 
        actions: [ "killop", "inprog" ] 
        },
       { 
        resource: { db: "", collection: "" }, 
        actions: [ "killCursors" ] 
        }
     ],
     roles: []
   }
)
创建一个角色可以运行mongostat
use admin
db.createRole(
   {
     role: "mongostatRole",
     privileges: [
       {
        resource: { cluster: true }, 
        actions: [ "serverStatus" ] 
        }
     ],
     roles: []
   }
)

##2.4.查看角色权限
使用db.getRole()方法来获得角色的权限:

> db.getRole("mongostatRole")
{
	"role" : "mongostatRole",
	"db" : "admin",
	"isBuiltin" : false,
	"roles" : [ ],
	"inheritedRoles" : [ ]
}

查看详细的角色:

> db.getRole("mongostatRole",{showPrivileges: true})
{
	"role" : "mongostatRole",
	"db" : "admin",
	"isBuiltin" : false,
	"roles" : [ ],
	"inheritedRoles" : [ ],
	"privileges" : [
		{
			"resource" : {
				"cluster" : true
			},
			"actions" : [
				"serverStatus"
			]
		}
	],
	"inheritedPrivileges" : [
		{
			"resource" : {
				"cluster" : true
			},
			"actions" : [
				"serverStatus"
			]
		}
	]
}

还可以使用db.getRoles()查看所有的非内建的角色:

> db.getRoles()
[
	{
		"role" : "manageOpRole",
		"db" : "admin",
		"isBuiltin" : false,
		"roles" : [ ],
		"inheritedRoles" : [ ]
	},
	{
		"role" : "mongostatRole",
		"db" : "admin",
		"isBuiltin" : false,
		"roles" : [ ],
		"inheritedRoles" : [ ]
	}
]
 
> db.getRoles({showPrivileges: true})
[
	{
		"role" : "manageOpRole",
		"db" : "admin",
		"isBuiltin" : false,
		"roles" : [ ],
		"inheritedRoles" : [ ],
		"privileges" : [
			{
				"resource" : {
					"cluster" : true
				},
				"actions" : [
					"inprog",
					"killop"
				]
			},
			{
				"resource" : {
					"db" : "",
					"collection" : ""
				},
				"actions" : [
					"killCursors"
				]
			}
		],
		"inheritedPrivileges" : [
			{
				"resource" : {
					"cluster" : true
				},
				"actions" : [
					"inprog",
					"killop"
				]
			},
			{
				"resource" : {
					"db" : "",
					"collection" : ""
				},
				"actions" : [
					"killCursors"
				]
			}
		]
	},
	{
		"role" : "mongostatRole",
		"db" : "admin",
		"isBuiltin" : false,
		"roles" : [ ],
		"inheritedRoles" : [ ],
		"privileges" : [
			{
				"resource" : {
					"cluster" : true
				},
				"actions" : [
					"serverStatus"
				]
			}
		],
		"inheritedPrivileges" : [
			{
				"resource" : {
					"cluster" : true
				},
				"actions" : [
					"serverStatus"
				]
			}
		]
	}
]

##2.5.查看用户角色
使用db.getUser()方法来查看用户的所赋予的角色:

> db.getUser("suq")
{
	"_id" : "admin.suq",
	"user" : "suq",
	"db" : "admin",
	"roles" : [
		{
			"role" : "dbOwner",
			"db" : "admin"
		},
		{
			"role" : "userAdmin",
			"db" : "admin"
		},
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}

还可以使用db.getUsers()获取全部的用户信息:

> db.getUsers()
[
	{
		"_id" : "admin.root",
		"user" : "root",
		"db" : "admin",
		"roles" : [
			{
				"role" : "userAdminAnyDatabase",
				"db" : "admin"
			}
		]
	},
	{
		"_id" : "admin.admin",
		"user" : "admin",
		"db" : "admin",
		"roles" : [
			{
				"role" : "root",
				"db" : "admin"
			}
		]
	},
	{
		"_id" : "admin.suq",
		"user" : "suq",
		"db" : "admin",
		"roles" : [
			{
				"role" : "dbOwner",
				"db" : "admin"
			},
			{
				"role" : "userAdminAnyDatabase",
				"db" : "admin"
			}
		]
	}
]

##2.6.授予/收回角色权限
使用db.revokePrivilegesFromRole()和db.grantPrivilegesToRole()方法收回和赋予角色权限

db.revokePrivilegesFromRole(
    "manageOpRole",
    [
        { resource: {"cluster" : true}, actions: ["inprog","killop"] }
    ]
)
 
db.grantPrivilegesToRole(
    "manageOpRole",
    [
        { 
        resource: {"cluster" : true}, 
        actions: ["inprog","killop"] 
        }
    ]
)

##2.7.授予/收回用户角色
使用db.revokeRolesFromUser()来收回用户所赋予的角色

db.revokeRolesFromUser(
    "suq",
    [
      { role: "userAdmin", db: "admin" }
    ]
)

使用db.grantRolesToUser()来给用户授予角色:
db.grantRolesToUser(
“reportsUser”,
[
{ role: “userAdmin”, db: “admin” }
]
)

##2.8.修改用户密码
使用db.changeUserPassword()方法来给用户修改密码:

> db.system.users.find();
> use dbname;
> db.changeUserPassword("suq", "111111");

##2.9.删除用户

#方式1:
> db.system.users.find();
> use dbname;
> db.dropUser("suq");
#方式2:
> db.system.users.find();
> db.system.users.remove({"_id" : "xxx.yyy"});
WriteResult({ "nRemoved" : 1 })

#3.内置角色和内置权限

#内置的角色,查看官方文档:
https://docs.mongodb.com/manual/reference/built-in-roles

#4.用户和角色方法

详细参见官方文档:
https://docs.mongodb.com/manual/reference/method/#role-management
Role Management
Name	Description
db.createRole()
Creates a role and specifies its privileges.
db.updateRole()
Updates a user-defined role.
db.dropRole()
Deletes a user-defined role.
db.dropAllRoles()
Deletes all user-defined roles associated with a database.
db.grantPrivilegesToRole()
Assigns privileges to a user-defined role.
db.revokePrivilegesFromRole()
Removes the specified privileges from a user-defined role.
db.grantRolesToRole()
Specifies roles from which a user-defined role inherits privileges.
db.revokeRolesFromRole()
Removes inherited roles from a role.
db.getRole()
Returns information for the specified role.
db.getRoles()
Returns information for all the user-defined roles in a database.
User Management
Name	Description
db.auth()
Authenticates a user to a database.
db.createUser()
Creates a new user.
db.updateUser()
Updates user data.
db.changeUserPassword()
Changes an existing user’s password.
db.removeUser()
Deprecated. Removes a user from a database.
db.dropAllUsers()
Deletes all users associated with a database.
db.dropUser()
Removes a single user.
db.grantRolesToUser()
Grants a role and its privileges to a user.
db.revokeRolesFromUser()
Removes a role from a user.
db.getUser()
Returns information about the specified user.
db.getUsers()
Returns information about all users associated with a database.

#5.用户角色权限集合
mongodb的用户和角色信息存放在admin数据库下的system.users和system.roles集合中.
mongodb建议修改用户和角色使用上面的用户和角色的方法,不要直接修改集合的数据.
system.roles集合数据大致如下:

{
  _id: <system-defined id>,
  role: "<role name>",
  db: "<database>",
  privileges:
      [
          {
              resource: { <resource> },
              actions: [ "<action>", ... ]
          },
          ...
      ],
  roles:
      [
          { role: "<role name>", db: "<database>" },
          ...
      ]
}

system.users集合数据大致如下:

{
  _id: <system defined id>,
  user: "<name>",
  db: "<database>",
  credentials: { <authentication credentials> },
  roles: [
           { role: "<role name>", db: "<database>" },
           ...
         ],
  customData: <custom information>
 }
 
#具体的说明几乎和上面的一致,就不赘述了,有兴趣的话可以查看官方文档:
https://docs.mongodb.com/manual/reference/system-users-collection/
https://docs.mongodb.com/manual/reference/system-roles-collection/

好了,聪明如你,知道了mongodb用户安全认证详解,是不是很欢喜 _

还有其他问题的可以在评论区留言或者扫码加博主获取资源或者提问。
在这里插入图片描述

从论文到生产:iSLIP优先级匹配算法在SDN交换机中的20年演进史 本文回顾了iSLIP优先级匹配算法在SDN交换机中的20年演进历程,从斯坦福大学的原始论文到现代芯片实现。通过独特的指针滑动和迭代循环机制,iSLIP算法显著提升了交换机的吞吐量和公平性,解决了传统FIFO调度的队头阻塞问题。文章详细探讨了算法在硬件实现中的工程挑战、开源实践及未来AI时代的智能调度方向。 阅读详情

相关推荐

NC65实现Restful接口开发及调试

NC65实现Restful接口开发及调试

linzhongshu的专栏 2145

Mongodb开启登录认证

2. 为特定的数据库添加用户;本文使用uwb_beacon_location。3. 在启动脚本加入--auth参数授权并重启mongodb。1. 创建超级管理员用户。本文基于4.0.11版本。

paul_544425851的博客 1180

从零配置Archery:手把手教你用Docker部署多数据库审核系统(MySQL/PostgreSQL/ClickHouse)

本文详细介绍了如何从零开始使用Docker部署Archery多数据库审核系统,涵盖MySQL、PostgreSQL和ClickHouse的配置与整合。文章提供了生产级Docker-compose配置、审核规则定制、工单流程设置以及企业微信通知集成等实战指南,帮助团队构建统一的企业级SQL审计平台,提升数据库操作规范与安全。

e4f5g6h7的博客 941

MongoDB-安全认证 (7)

MongoDB的安全认证 角色权限管理

dis_1illusion的博客 1845

智驾车载以太网(18)-switch之报文转发和vlan处理流程

本文详细解析了交换机中报文处理和转发流程:1)通过目标MAC查找转发端口,源MAC创建ARL条目;2)VLAN标签处理包括tagged/untagged帧判断、默认VID标记等5种处理方式;3)完整转发流程包含CRC校验、IQ封装、VLAN和ARL表查询、端口向量计算及优先级队列发送。文中还涉及TCAM修改VLAN、802.1q多种模式处理等细节,省略了流量控制等次要流程。该过程实现了基于MAC和VLAN的高效二层交换。

mitugaoyang1993的博客 43

通信算法之283:大疆DJI云哨系统-DJI DroneID物理层协议-解速率匹配及Turbo译码

3. 完整云哨接收机,接收灵敏度。交流: 1279682290 ,2. Turbo译码模块。1. 解速率匹配模块。

leegang12的专栏 868

MongoDB的安全认证详解

内置角色只能控制User在DB级别上执行的操作,管理员可以创建自定义角色,控制用户在集合级别(Collection-Level)上执行的操作,即,控制User在当前DB的特定集合上执行特定的操作。Scope:角色作用的范围,创建在Admin中的角色,能够在其他DB中使用;在其他DB中创建的角色,只能在当前DB中使用;Resource:角色控制的资源,表示授予在该资源上执行特定操作的权限;

qq_60175070的博客 4208

Android软键盘系统深度解析:架构、原理与实现

Android软键盘系统深度解析:架构与实现原理 本文系统剖析了Android软键盘的核心工作机制。作为系统级输入服务,软键盘具有双重属性:既是可安装的独立应用,又深度集成于系统框架中。文章详细解读了软键盘的系统架构,包括其与InputMethodManagerService(IMMS)和WindowManagerService(WMS)的交互机制,以及通过InputConnection实现的跨进程通信流程。同时分析了输入法窗口的特殊管理策略、布局调整模式,并深入探讨了输入预测引擎的实现原理,包括词典加载、

保持专注,保持热爱 114

Docker 安装 MongoDB开启认证,创建只读用户权限。

-auth就是开启mongodb权限认证。如果不加--auth则是无权限认证,连接成功后任何用户都可以对数据库进行读写操作。

答案的博客 3857

CAPL与人工智能结合

AI模型是指通过机器学习算法训练得到的模型,可以用于分类、回归、聚类等任务。常见的AI模型包括神经网络、支持向量机、决策树等。在汽车电子系统中,AI模型可以用于故障诊断、驾驶行为分析、自动驾驶等场景。实时决策是指在汽车电子系统中,根据AI模型的预测结果,实时做出决策。实时决策可以用于自动驾驶、故障诊断等场景。通过本文的学习,读者应该对CAPL与人工智能结合有了初步的了解,并能够编写复杂的CAPL脚本。

闲人编程的博客 1480

stata 工具变量法【计量经济系列(七)】

stata 工具变量法【计量经济系列(七)】 1. 内生性 2. 工具变量3. 2SLS (二阶段最小二乘法) 4. 弱工具变量5. 工具变量外生性的过度识别检验 6. 豪斯曼检验6.1 传统豪斯曼 6.2 杜宾-吴-豪斯曼检验(DWH)

侯小啾技术博客 2万+

昊鼎王五:SCRAM-SHA-1与MONGODB-CR用户安全认证的区别是什么?

昊鼎王五:SCRAM-SHA-1与MONGODB-CR用户安全认证的区别是什么? 在《昊鼎王五:如何配置mongodb集群的用户认证方式及创建访问权限用户?》 https://blog.youkuaiyun.com/haoding205/article/details/82257010 我们知道, 修改认证方式的命令是: &amp;amp;amp;gt; use admin switched to db admin &amp;amp;amp;...

昊鼎王五的博客 4010

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【昊鼎王五】监控mongodb的性能所用到的最有用的命令

【昊鼎王五】监控mongodb的性能所用到的最有用的命令 1.基本查询命令 > db.currentOp() > db.serverStatus().lock > db.serverStatus().mem ./mongostat --host 127.0.0.1:30000 -uroot -pxxx --authenticationDatabase admin 2.关于wir...

昊鼎王五的博客 205

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【昊鼎王五】Mongodb如何使用内存才是正常充分的?

【昊鼎王五】Mongodb如何使用内存才是正常充分的? MongoDB要想速度快,就要充分的使用内存, 所以Mongodb设计之初就是启动时就吃很多内存,然后留给自己。 表现在top进程管理器中就是: 机器所剩余的内存:free很小 机器的buff/cache很大。 VIRT占用的很大, 如下图,典型案例: 上面图中,一个mongod所占用的缓存就是一百GB,所以,一台机器基本上承载两个mong...

昊鼎王五的博客 213

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【昊鼎王五】对Mongodb中Balancer自动均衡的最有用的操作

【昊鼎王五】对Mongodb中Balancer自动均衡的最有用的操作 关闭Balancer > use config > db.settings.update( { _id: "balancer" }, { $set : { stopped: true } } , true ); #禁用分片的自动平衡 > db.printShardingStatus() 开启B...

昊鼎王五的博客 492

昊鼎王五:mongodb如何撤销仲裁节点?

昊鼎王五:mongodb如何撤销仲裁节点? 想实现 MONGODB 集群架构 调整,增加延迟备份节点服务器,删除仲裁节点 实现方案:请见《昊鼎王五:mongodb的副本集与分片的对比?》 https://blog.youkuaiyun.com/haoding205/article/details/82351753 “3.4复制节点的增减” 核心命令是: rs.remove(&quot;192.168....

昊鼎王五的博客 828

昊鼎王五:mongodb的副本集与分片的对比?

昊鼎王五:mongodb的副本集与分片的对比? 本文基于:《昊鼎王五:linux(centos7)如何七分钟搭建mongodb集群服务器?》 https://blog.youkuaiyun.com/haoding205/article/details/82253048 高可用分片集群架构图 1.分片与复制集对比 1.1 、shard片区 每个shard 片区都是一个副本集(Replic...

昊鼎王五的博客 2398

昊鼎王五:如何配置mongodb集群的用户认证方式及创建访问权限用户?

昊鼎王五:如何配置mongodb集群的用户认证方式及创建访问权限用户? 1.基础知识: 1.1前提: 本文基于:《昊鼎王五:linux(centos7)如何七分钟搭建mongodb集群服务器?》 https://blog.youkuaiyun.com/haoding205/article/details/82253048 1.2为什么要配置mongodb集群的用户认证方式? 为了mo...

昊鼎王五的博客 1156

【昊鼎王五】Mongo导出mongoexport和导入mongoimport介绍

为了将近2万条数据从一个库提取到另外一个库中,恰好MongoDB支持导出的数据可以是csv文件和json文件,所以下面介绍下MongoDB mongoexport和mongoimport方法; 一、导出工具mongoexport 简介,通过帮助先了解下mongoexport的功能参数 复制代码 [root@iZ2ze4b308vd83fulq9n7iZ ~]# mongoexport --help...

昊鼎王五的博客 602

昊鼎王五:mongoDB的构架图是什么样的?

昊鼎王五:mongoDB的构架图是什么样的? 想画一个mongoDB高可用集群的架构图,怎么画? 具体请见: 《昊鼎王五:linux(centos7)如何七分钟搭建mongodb集群服务器?》 https://blog.youkuaiyun.com/haoding205/article/details/82253048 好了,聪明如你,知道了mongoDB的构架图是什么样的,是不是很欢喜 ^_^...

昊鼎王五的博客 276

昊鼎王五:推荐一个mongodb综合管理可视化工具

昊鼎王五:推荐一个mongodb综合管理可视化工具 q.前提介绍: 参考网址: https://www.163yun.com/product/mongodbcid=ch170504161736016907&amp;amp;amp;utmCampaign=4EA99C913E30EB829F9CD980F2FB19B850A2DB9B4450704A&amp;amp;amp;utmSource=7C702971B17F...

昊鼎王五的博客 1194

【昊鼎王五】关于Mongodb索引的最有用的用法

【昊鼎王五】关于Mongodb索引的最有用的用法 查询: db.TableName.getIndexes() 删除索引: db.TableName.dropIndex('IndexName') #切记,此处的IndexName代表索引的名称,而不是索引的KEY 添加索引: db.TableName.ensureIndex({"字段名称": 1 }) 重...

昊鼎王五的博客 182

【昊鼎王五】如何查看MONGODB中读取一条数据所消耗的性能时间是多少?

【昊鼎王五】如何查看MONGODB中读取一条数据所消耗的性能时间是多少? 命令: .explain("executionStats") 试举一例:

昊鼎王五的博客 461

昊鼎王五:如何MongoDB查询优化?

昊鼎王五:如何MongoDB查询优化? MongoDB 查询优化 #1.在查询条件、排序条件、统计条件的字段上选择创建索引,可以显著提高查询效率。 比如:创建唯一索引 db.fs.files.ensureIndex({&amp;quot;filename&amp;quot;:1},{&amp;quot;unique&amp;quot;:true}) #2.用$or时把匹配最多结果的条件放在最前面,用$and时把匹配最少结果的条件放在最前面。

昊鼎王五的博客 373

昊鼎王五:如何备份及恢复mongodb(导出、导入)?

昊鼎王五:如何备份及恢复mongodb(导出、导入)? 1.基础知识: 1.1前提: 本文基于:《昊鼎王五:如何配置mongodb集群的用户认证方式及创建访问权限用户?》 https://blog.youkuaiyun.com/haoding205/article/details/82257010 2.备份命令: cd /hd205/service/mongodbwork/mongo...

昊鼎王五的博客 220

昊鼎王五:如何在windows上安装Mongodb与基本命令?

昊鼎王五:如何在windows上安装Mongodb与基本命令? 1.windows安装 1.1.官网下载地址 http://www.mongodb.org/downloads 根据电脑系统类型选择32位,或64位安装包下载; 1.2.解压mongodb安装包 双击安装 至此mongodb安装完毕! 2.Mongodb基本命令 2.1.建数据库 ...

昊鼎王五的博客 220
上一篇: 昊鼎王五:如何备份及恢复mongodb(导出、导入)?
下一篇: 昊鼎王五:如何在windows上安装Mongodb与基本命令?
昊鼎王五
博客等级 码龄8年 37粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值