当前位置:网站首页>MongoDB 学习整理(用户,数据库,集合,文档 的基础命令学习)
MongoDB 学习整理(用户,数据库,集合,文档 的基础命令学习)
2022-06-12 16:29:00 【JAVA·D·WangJing】
一、用户
#### 创建用户
# roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:
# Built-In Roles(内置角色):
# 1、数据库用户角色:read、readWrite;
# 2、数据库管理角色:dbAdmin、dbOwner、userAdmin;
# 3、集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
# 4、备份恢复角色:backup、restore;
# 5、所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
# 6、超级用户角色:root
# 7、内部角色:__system
# 具体角色:
# Read:允许用户读取指定数据库
# readWrite:允许用户读写指定数据库
# dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
# userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
# clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
# readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
# readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
# userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
# dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
# root:只在admin数据库中可用。超级账号,超级权限。
db.createUser({ user:'wangjing',pwd:'wangjing',roles:[{role:"userAdminAnyDatabase", db:"admin"}]});
#### 验证用户信息
db.auth('wangjing', 'wangjing')
#### 修改信息
### 修改密码
db.changeUserPassword("wangjing", "wangjing1")
### 修改用户信息
db.updateUser("wangjing", {roles:[{role:"root", db:"admin"}]})
#### 删除用户
### 删除用户
db.dropUser("wangjing")
### 删除当前数据下所有用户
db.dropAllUsers()
### 查看当前数据下的用户(需要有用户管理权限)
show users
二、数据库
#### 创建数据库
### 创建 'wangjing_test' 数据库
use wangjing_test
### 查看当前所在数据库
db
### 查看所有数据库(wangjing_test 不存在)
show dbs
### 插入一条数据
db.wangjing_test.insert({"name":"wangjing"})
### 删除当前数据库
db.dropDatabase()
三、集合
### 创建集合
# db.createCollection(name, options)
# 参数说明:
# name: 要创建的集合名称
# options: 可选参数, 指定有关内存大小及索引的选项
# options 可以是如下参数:
# capped(布尔) (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。
# autoIndexId(布尔) (可选)如为 true,自动在 _id 字段创建索引。默认为 false。3.2 之后不再支持该参数。
# size(数值) (可选)为固定集合指定一个最大值,即字节数。如果 capped 为 true,也需要指定该字段。
# max(数值) (可选)指定固定集合中包含文档的最大数量。
db.createCollection("wangjing_collection")
### 查询已有集合
show collections
show tables
### 删除集合
db.wangjing_collection.drop()
四、文档
### 插入文档
# 使用 insert() 或 save()
# save() 如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。
# insert() 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。
# db.wangjing_collection.save(document)
# 3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()
# db.collection.insertOne(<document>,{writeConcern: <document>})
# db.collection.insertMany([ <document 1> , <document 2>, ... ],{writeConcern: <document>, ordered: <boolean>})
# 参数说明:
# document:要写入的文档。
# writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
# ordered:指定是否按顺序写入,默认 true,按顺序写入。
# 集合不存在会自动创建
db.wangjing_collection.insert({"name":"wangjing","sex":"男","age":27})
### 查看插入文档
db.wangjing_collection.find()
### 更新文档
# db.collection.update(<query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> })
# 参数说明:
# query : update的查询条件,类似sql update查询内where后面的。
# update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
# upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
# multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
# writeConcern :可选,抛出异常的级别。
db.wangjing_collection.update({"name":"wangjing"}, {$set:{"name":"wangjing1"}})
### 删除文档
# db.collection.remove(<query>, { justOne: <boolean>, writeConcern: <document>})
# 参数说明:
# query :(可选)删除的文档的条件。
# justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
# writeConcern :(可选)抛出异常的级别。
db.wangjing_collection.remove({'name':'wangjing1'})
### 查询文档
# db.collection.find(query, projection)
# 参数说明:
# query :可选,使用查询操作符指定查询条件
# projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
# 以易读的方式来读取数据: pretty()
# db.collection.find(query, projection).pretty()
# 只返回一个文档 findOne()
db.wangjing_collection.find({'name':'wangjing'}).pretty()
# MongoDB AND 条件
db.wangjing_collection.find({"name": "wangjing"},{"sex": "男"}).pretty()
# MongoDB OR 条件
db.wangjing_collection.find({$or: [{"name": "wangjing"}, {"sex":"男"}]}).pretty()
# AND 和 OR 联合使用
db.wangjing_collection.find({"age": {$gt:20}, $or: [{"name": "wangjing"},{"sex": "男"}]}).pretty()
注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!
边栏推荐
- <山东大学项目实训>渲染引擎系统(四)
- The C Programming Language(第 2 版) 笔记 / 7 输入与输出 / 7.8 其它函数
- Object.keys遍历一个对象
- generate pivot data 2
- 线程池执行流程
- Project training of Shandong University rendering engine system (II)
- The C Programming Language(第 2 版) 笔记 / 8 UNIX 系统接口 / 8.3 open、creat、close、unlink
- What's the matter with pbootcms' if judgment failure and direct display of labels?
- The C programming language (version 2) notes / 8 UNIX system interface / 8.2 low level i/o (read and write)
- The market share of packaged drinking water has been the first for eight consecutive years. How does this brand DTC continue to grow?
猜你喜欢

acwing 801. Number of 1 in binary (bit operation)

Thinking about the probability of drawing cards in the duel link of game king

批量--03---CmdUtil

The process of "unmanned aquaculture"

Statistical machine learning code set

看《梦华录》上头的人都该尝试下这款抖音特效

generate pivot data 0

线程池执行流程

MySQL interview arrangement

How to base on CCS_ V11 new tms320f28035 project
随机推荐
<山东大学项目实训>渲染引擎系统(四)
Daily question -890 Find and replace mode
面试:了解装箱和拆箱操作吗?
leetcode-54. Spiral matrix JS
The C Programming Language(第 2 版) 笔记 / 8 UNIX 系统接口 / 8.7 实例(存储分配程序)
The C programming language (2nd Edition) notes / 7 input and output / 7.8 other functions
<山东大学项目实训>渲染引擎系统(八-完)
Glove word embedding (IMDb film review emotion prediction project practice)
Interview: why do integer wrapper classes try to use equals() to compare sizes
【BSP视频教程】BSP视频教程第17期:单片机bootloader专题,启动,跳转配置和调试下载的各种用法(2022-06-10)
token与幂等性问题
Comprendre le go des modules go. MOD et go. SUM
Sum of acwing796 submatrix
Acwing794 high precision Division
Global and Chinese market of vascular prostheses 2022-2028: Research Report on technology, participants, trends, market size and share
Global and Chinese markets for air sampling calibration pumps 2022-2028: Research Report on technology, participants, trends, market size and share
Joint recruitment notice of ganfei research group of Wuhan University and xuzhenjiang research group of Nanchang University
How to base on CCS_ V11 new tms320f28035 project
33-【go】Golang sync.WaitGroup的用法—保证go协程执行完毕,主协程才退出
acwing 802. Interval sum (discretization)