mongodb 3.4 学习 (二)命令

# 使用或切换数据库
use <database name>
# 显示所有数据库
show dbs
# 显示所有collection
show collections
# 显示所有user
show users
# 插入document到collections
doc = ({"Type": "Book", "Title": "Definitive Guide to MongoDB 3rd ed., The","ISBN": "978-1-4842-1183-0", "Publisher": "Apress", "Author": ["Hows, David", "Plugge,Eelco", "Membrey, Peter", "Hawkins, Tim"]})
db.media.insertOne(doc) # collections media不需要提前建立,在插入document时自动生成
db.media.insertOne( { "Type" : "CD", "Artist" : "Nirvana", "Title" : "Nevermind" })
# 检索document
> db.media.find()
{ "_id" : ObjectId("591e57feade3e79fbc1a8319"), "Type" : "Book", "Title" : "Definitive Guide to MongoDB 3rd ed., The", "ISBN" : "978-1-4842-1183-0", "Publisher" : "Apress", "Author" : [ "Hows, David", "Plugge,Eelco", "Membrey, Peter", "Hawkins, Tim" ] }
{ "_id" : ObjectId("591e586cade3e79fbc1a831a"), "Type" : "CD", "Artist" : "Nirvana", "Title" : "Nevermind" }
> db.media.find ({ Artist: "Nirvana"}) # 按作者检索,返回全部项目
> db.media.find ({Artist: "Nirvana"}, {Title: 1}) # 按作者检索,仅返回title
> db.media.find ({Artist: "Nirvana"}, {Title: 1, _id: 0}) # 按作者检索,仅返回title,同时不显示id
db.media.find().sort({Title: 1}) # 1 asc, -1 desc
db.media.find().limit(10)
db.media.find().skip(20)
db.media.find().sort({Title: -1}).limit(10).skip (20)
# capped collection : 固定长度的collection,写满时会自动清除开头的记录,然后在未尾写入新记录
> db.createCollection("audit", {capped:true, size:20480})
> db.audit.find().sort({ $natural: -1 }).limit (10)
> db.createCollection("audit100", {capped:true, size:20480, max:100}) # 最大容量2048Bytes,最大记录数100
> db.audit100.stats()
# Aggregation(聚合)
> db.media.count()
> db.media.find({Publisher:"Apress", Type:"Book"}).count()
> db.media.distinct( "Title")
# 分组
> db.media.group (
{
key: {Title : true},
initial: {Total : 0},
reduce : function (items,prev)
{
prev.Total += 1
}
}
)
# 数据库用户角色
read 读取所有非系统collection和system.indexes、system.js、system.namespaces三个系统collection
readWrite 读写所有非系统collection和system.indexes、system.js、system.namespaces三个系统collection
# 数据库管理员角色
dbAdmin 除用户角色管理的其他管理操作
userAdmin 修改当前数据库的用户及角色,
dbOwner readWrite + dbAdmin + userAdmin
# 群集管理员角色
hostManager 管理和监控服务器
clusterMonitor 只读访问权限的监控工具
clusterManager 管理监控群集,允许访问config和local数据库,用于sharing replication respectively
clusterAdmin hostManager + clusterMonitor + clusterManager
# 备份恢复角色
backup
restore 允许使用mongorestore命令但不允许使用oplogReplay选项,不能恢复system.profile数据
# 全数据库权限
readAnyDatabase 所有数据库的读权限
readWriteAnyDatabase 所有数据库的读写权限
userAdminAnyDatabase 所有数据库的userAdmin权限
dbAdminAnyDatabase 所有数据库的dbAdmin权限
# 超级用户权限
root readWriteAnyDatabase + dbAdminAnyDatabase + userAdminAnyDatabase + clusterAdmin + restore + backup
# 建立超级用户admin
use admin
db.createUser(
{
user: 'admin',
pwd: '@admin',
roles: [
{ role: 'root', db: 'admin' },
]
}
)
# 建立mydb的管理员用户my
use mydb
db.createUser(
{
user: 'my',
pwd: '@my',
roles: [
{ role: 'dbOwner', db: 'mydb' },
]
}
)
# 用户认证登录
use admin
db.auth('admin', '@admin')
mongodb 3.4 学习 (二)命令的更多相关文章
- MongoDB副本集学习(二):基本测试与应用
简单副本集测试 这一节主要对上一节搭建的副本集做一些简单的测试. 我们首先进入primary节点(37017),并向test.test集合里插入10W条数据: . rs0:PRIMARY> ;i ...
- redis命令学习(二) · THIS SPACE
列表(Lists)操作命令 Redis列表是简单的字符串列表,按照插入顺序排序. 你可以添加一个元素导列表的头部(左边)或者尾部(右边)LPUSH命令插入一个新的元素导头部,而RPUSH插入一个新元素 ...
- MongoDB 数据库的学习与使用
MongoDB 数据库 一.MongoDB 简介(了解) MongoDB 数据库是一种 NOSQL 数据库,NOSQL 数据库不是这几年才有的,从数据库的初期发展就以及存在了 NOSQL 数据库. ...
- MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码
先来张在路上…… 铛铛铛……项目源码下载地址:http://files.cnblogs.com/ontheroad_lee/MongoDBDemo.rar 此项目是用Maven创建的,没有使用Mave ...
- Mongodb基本数据类型、常用命令之增加、更新、删除
1.null---表示空值或者该字段不存在,如{"name":null} 2.布尔 --- 和java中的布尔一样,有两种:true,false,如{"sex" ...
- [转]搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
- 搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
- SpringCloud学习(二):微服务入门实战项目搭建
一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...
- SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
随机推荐
- Linux之旅
如今 linux 随着云服务的狂扫全球之势,对吾等准开发人员而言也不可继续视而不见了,硬着头皮调用情绪开始 Linux 之旅. 一.主机准备 既然 Linux,必然和日常工作的环境产生了“冲突”,经过 ...
- POJ 2182 Lost Cows (求序列第k大)
题解 二分+树状数组 显然最和一个数的值就是rank 那么其它数有什么规律? 从后往前匹配rank,我们可以发现第i个数的rank为还没有匹配的rank第(a[i]+1)大的数 这可以用 树状数组+二 ...
- 学习掌握oracle外表(external table)
[转自] http://blog.chinaunix.net/uid-10697776-id-2935685.html 定义 External tables access data in extern ...
- 【网络】CCNA实验一:Vlan、Trunk
要求: 1:不同楼层物理隔离,但逻辑相连 2:相同楼层物理相连,但逻辑隔离 3:主机可以动态获取IP地址 4:不同VLAN间可以进行通信 5:主机最终访问www.esafenet.com弹出" ...
- Redis主从、哨兵、集群的简单区别
2018-10-26 主从:读写分离,备份哨兵:监控,自动转移,选主集群:数据 hash 分片,同时包含主从及哨兵特性
- Sqlite CodeFirst的初级实现
示例实体: using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnn ...
- oracle12C--新特性
Orcle 12c 新特性-使用DBCA创建物理备库 >>点击这里<< Orcle 12c DG 新特性-Far Sync >>点击这里<< Orcle ...
- linux 运维基础之 禁止 ping
ping命令不要小瞧呀,小伙子!!! 听过死亡之ping不? 语法 ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l ...
- Python 字典的取值
不能用.取值 .是获取属性或方法 只能用中括号或者get方法 中括号和get中可以放字符串或者变量 get与[]的区别在于当key不存在,get不会报错,而且get可以设置取不到值时返回的默认值.
- (转)详解Linux中SSH远程访问控制
详解Linux中SSH远程访问控制 原文:http://blog.51cto.com/dengqi/1260038 SSH:是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能(使用TC ...