当前位置:网站首页>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()
注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!
边栏推荐
- Interview: do you understand the packing and unpacking operations?
- <山东大学项目实训>渲染引擎系统(二)
- Joint recruitment notice of ganfei research group of Wuhan University and xuzhenjiang research group of Nanchang University
- <山东大学项目实训>渲染引擎系统(三)
- The C Programming Language(第 2 版) 笔记 / 8 UNIX 系统接口 / 8.2 低级 I/O(read 和 write)
- acwing 803. 区间合并
- 面试:‘==‘与equals()之间的区别
- 每日一题-890. 查找和替换模式
- acwing795 前缀和(一维)
- 'virtue and art' in the field of recurrent+transformer video recovery
猜你喜欢

Acwing794 high precision Division

Thread pool execution process

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

Multimix: small amount of supervision from medical images, interpretable multi task learning

双写一致性问题

Servlet API

Batch --03---cmdutil

收藏 | 22个短视频学习Adobe Illustrator论文图形编辑和排版

acwing 802. 区间和 (离散化)

MYSQL---服务器配置相关问题
随机推荐
Servlet API
RTOS RT thread bare metal system and multi thread system
std::set compare
Analysis of Nacos config dynamic refresh source code
'virtue and art' in the field of recurrent+transformer video recovery
MYSQL---服务器配置相关问题
pbootcms的if判断失效直接显示标签怎么回事?
Kill program errors in the cradle with spotbugs
33-【go】Golang sync. Usage of waitgroup - ensure that the go process is completed before the main process exits
Project training of Shandong University rendering engine system (VI)
Servlet API
acwing 798二维差分(差分矩阵)
Exception assertion of assertj
acwing 803. 区间合并
Project training of Shandong University rendering engine system (VII)
acwing 高精度乘法
[BSP video tutorial] BSP video tutorial issue 17: single chip microcomputer bootloader topic, startup, jump configuration and various usage of debugging and downloading (2022-06-10)
MySQL系列之分库分表学习笔记
The market share of packaged drinking water has been the first for eight consecutive years. How does this brand DTC continue to grow?
Interview: hashcode() and equals()