Mongo集合操作

news2024/11/28 13:33:59

2、创建切换数据库

2.1 默认数据库

mongo数据库和其他类型的数据库一样,可以创建数据库,且可以创建多个数据库。

mongo数据库默认会有四个数据库,分别是

  • admin:主要存储MongoDB的用户、角色等信息

  • config:主要存储分片集群基础信息

  • local:主要存储副本集的元数据

  • test:在不插入数据时不会显示出来

    test库是一个默认的数据库,除了test库外admin、config、local库为系统库

2.2.1 admin库

admin数据库是mong默认的系统库之一,它最主要用来存放一些用户、角色以及版本等信息,在admin库下默认有两个集合(在其他数据库中叫表),分别是角色信息和版本信息。

# 切换到admin库下
use admin
# 查看是否切换成功
db
#查看admin库中的集合
show collections

在这里插入图片描述

其中 system.version主要存储一些featureCompatibilityVersion信息和authSchema信息

db.system.version.find()

在这里插入图片描述

system.users主要存储一些用户 角色信息
在这里插入图片描述

​ 可以在admin数据库下建立任意集合,存储任何数据,但强烈建议不要使用admin数据库存储应用业务数据,最好创建新的数据库。
  admin数据库里的system.users集合的数据会缓存到内存里,这样不用每次鉴权都从磁盘加载用户角色信息。
  MongoDB admin数据库的写入操作的锁级别只能到DB级别,不支持多个collection并发写入,在写入时也不支持并发读取。如果用户在admin数据库里存储业务数据,则可能遭遇性能问题。

2.2.2 config库

config数据库也是mongo默认的系统库之一, 主要存储副本集的元数据

# 切换到local库下
use local
# 查看是否切换成功
db
#查看local库中的集合,
show collections

2.2.3 local库

local数据库也是mongo默认的系统库之一, 主要用来存储分片集群的信息,一般只有在分片是起作用

# 切换到local库下
use local
# 查看是否切换成功
db
#查看local库中的集合,
show collections

2.2 创建切换删除数据库

2.2.1 创建切换数据库

在mongo中创建和切换数据库用的是同一个命令

use database_name

如果DataBase_Name存在,则直接切换,若不存在则直接创建

# 查看当前已存在的所有数据库
>show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
# 创建数据库
>use demo
switched to db demo
# 再次查看当前存在的所有数据库
>show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
# 可以发现,没有刚才自己创建的数据库,那是因为在mongo中创建的数据库默认不展示,需要想向数据库中插入数据,此时数据库才会展示
>db.demo.insert({"name":"hello worod"});
>>show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
demo    0.000GB

2.2.3 删除数据库

#切换到需要删除的数据库
>use demo
#查看
>db
#删除
>db.dropDatabase()

2.2.4 数据库命名规范

  1. 不能是空字符串(“”)
  2. 不得含有’ '(空格)、.、$、/、\和\0 (空字符)。
  3. 应全部小写,且最多64字节
  4. 有一些数据库名是保留的,不能作为自己的库名(例如:admin config local)

3、集合操作

在mongo数据库中,数据表叫做集合。

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合

3.1 创建集合

在mongo中创建集合的方式主要分为两类:

  1. 隐式创建集合
  2. 显示创建集合

3.1 隐式创建集合

隐式创建集合,顾名思义就是在你没有创建集合,但是却mongo已经帮你创建好集合了。其实本质是当我们在创建数据库的时候,mongo默认会给你创建一个和数据库名一样的集合

use demo
db.demo.insert({id:1,name:"hello mongo"})

此时就会创建一个默认的集合,但是如果不插入数据,则该数据库不会展示.

3.2 显示创建集合

显示创建集合就是通过命令进行显示的创建集合

语法:

​ db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项
字段类型描述
capped布尔如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。,默认为false
size数值为固定集合指定一个最大值,即字节数。 如果 capped 为 true,也需要指定该字段。
max数值指定固定集合中包含文档的最大数量。

例子:

#得到所有集合(不包含集合的详细信息)
db.getCollectionNames()
#得到集合的详细信息
db.getCollectionInfos()
#创建固定集合
db.createCollection("test1",{capped:true,size:1000,max:1000})
#创建非固定集合
db.createCollection("test")

在这里插入图片描述

3.2 查看集合

查看的集合的方式主要分为两种

  1. 查看集合的详细信息
  2. 查看集合,只得到集合的名字
#得到所有集合(不包含集合的详细信息)
db.getCollectionNames()
#得到集合的详细信息
db.getCollectionInfos()

![

3.3 删除集合

当我们不想使用某个集合(表),或者不在使用某个集合时,为了节约空间,此时我们可以将某个集合删除, 但是在删除集合时一定要特别注意,一般不建议删除集合,尤其是在生产环境中.

语法:

db.collection_Nane.drop()

如果删除成功,则返回true,否则返回false

例子:

#删除某个集合
db.test.drop()

在这里插入图片描述

注意:不建议进行此操作,尤其是在生产环境中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/528616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据泄露、数据爬取......金融机构要如何保护催收场景下的数据安全?

金融企业的贷后催收是指向借款人发送催收通知和采取其他措施,以确保借款人按时还款并追回逾期贷款的过程。这通常包括电话催收、信函催收、上门访问等方式。贷后催收通常由金融机构内部的专业团队或第三方专业催收公司承担。 由于催收业务会涉及到很多个人信息&…

家政服务预约小程序开发 解放双手享受洁净生活

在外工作忙了了一天回到家还有做不完的家务,很多时候家庭主妇总是受不了这样的生活二崩溃,随着生活水平的提高,上门家政预约类软件层出不穷,让万千家庭足不出户就可在线预约家政服务,在家享受专业的保洁、维修、安装等…

鸿蒙Hi3861学习十四-Huawei LiteOS-M(STA模式)

一、简介 AP(Access Point)无线接入点 AP是无线接入点,是一个无线网络的创建者,是网络的中心节点。一般家庭或办公室使用的无线路由器就是一个AP。 STA(Station)站点 STA也可以理解为终端的意思&#xff…

进行性能压力测试的原因、目的和好处

性能压力测试是指在模拟高负载、高并发情况下对软件系统进行测试,以衡量系统在实际使用过程中的性能表现。这些测试可以为生产环境中的应用程序提供关键数据,并帮助开发人员从根本上了解系统的实际性能。在本文中,我们将探讨进行性能压力测试…

微信视频号视频可以下载吗?视频下载器安装使用教程

简介 最近小伙伴推荐了一款视频下载神器,它可以批量下载微信视频号中的视频到本地上,我试了一下非常简单方便,而且还支持预览等操作,今天分享给大家 软件下载 ➤ 微信视频号下载器下载 ⇲ 安装使用教程 安装 我们下载好对应…

Centos7安装配置MySQL 8.0.20

安装配置MySQL 8.0.20 步骤一:安装MySQL 8.0.20 使用wget命令从mysql官网下载MySQL8.0.20安装包: wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz解压安装包: tar -Jxvf mysql-8.0.20-…

QT 操作SQL

目录 一、QT SQL简介 (一)、QT SQL对数据库支持 1、驱动层 2、SQL API层 3、用户接口层 (二)SQLite数据库初识 1、第一步:在项目管理文件(.pro)中增加数据库模块​编辑 2、第二步:查看…

用讯飞星火大模型1分钟写一个精美的PPT

文章目录 前言SparkDesk讯飞星火认知大模型简介利用讯飞星火写一个转正述职ppt1.告诉讯飞星火我想写一篇转正述职ppt2.利用MindShow一键生成ppt 申请体验写在最后 前言 随着ChatGPT迅速走红,国内各大企业纷纷发力认知大模型领域。经过一段时间的酝酿,讯飞“星火认知大模型”于…

家门口可以参加公益小天使活动啦

“我的布娃娃可以换你的书吗?” “发现有人晕倒,第1步要确认环境安全。” 这是5月14日上午,在武昌区水果湖街道滨湖社区,闲置互换应急科普活动上发生的对话 该活动由水果湖街道滨湖社区和武汉公益小天使联合发起。5月初&#x…

出现找不到msvcp140.dll无法继续执行代码要怎么解决?

出现找不到msvcp140.dll无法继续执行代码要怎么解决?当你尝试在Windows系统上运行某些程序或游戏时,可能会遇到“找不到msvcp140.dll无法继续执行代码”的错误提示。这个错误通常表示你的系统缺少了msvcp140.dll文件,而这个文件是Visual C Re…

SQL server 纵横报表查询

select warehouseid AS 仓库, case when Udf2 SAP THEN SAP WHEN Udf2 SNC THEN SNC ELSE 手工创建 end AS 创建来源 ,COUNT(isnull(UDF2,手工创建)) AS 数量 from DOC_Appointment_Header dah where convert(varchar(10),AddTime,120) > 2022-09-01 --and warehousei…

ASEMI代理ADI亚德诺ADP5054ACPZ-R7供电管理芯片介绍

编辑-Z 本文主要介绍ADP5054ACPZ-R7供电管理芯片的基本特性和应用场景。该芯片支持多路输出,具有高效和可靠性的特点,适用于各种电力系统和工业控制设备。 1、ADP5054ACPZ-R7的基本特性 ADP5054ACPZ-R7是一款高度集成的供电管理芯片,具有以…

python argparse 模块命令行参数解析

1.概述 argparse 是 python 的一个命令行解析包,可根据需要编写高可读性的程序。本文针对项目中对 argparse 的用法,用实例对各个参数进行讲解,力求达到让读者秒懂的目的。 2.api概述 2.1 ArgumentParser 对象 class argparse.ArgumentPar…

msvcr120.dll丢失怎样修复?msvcr120.dll丢失修复的四个方法

打开软件跟游戏提示msvcr120.dll丢失,无法执行此代码怎么办?刚刚遇到这个问题,我都无从下手。家人们,你是不是也被这个问题也困扰过。msvcr120.dll是什么文件呢?经过我一个下午的时间研究,终于搞清楚了&…

在 Mac 上的“终端”中执行.out文件

在 Mac 上的“终端”中执行.out文件 安装C及设置C语言环境怎么运行 安装C及设置C语言环境 最近在自学C语言,因为用的是mac电脑(MacBook Air M1),自带了C语言环境,如果用的是windows系统,可能这篇文章对您没有一点帮助…

10年软件测试人劝你千万别上当,测试岗位就是个巨坑......

每次都有人问我软件测试的前景是什么样的,每年也会有人很多人纷纷涌入测试的岗位上,希望自己能够进入阿里、华为等大厂。 但是测试岗位真的那么吃香吗?今天我结合从零基础小白到测试开发的成长经历,来说下这个行业的发展前景&…

基于改进MRAS算法的永磁同步电机参数辨识

基于改进MRAS算法的永磁同步电机参数辨识 摘 要永磁同步点电机参数辨识算法介绍永磁同步电机数学模型改进MRAS参数辨识算法递推最小二乘法辨识原理递推最小二乘法结合MRAS算法原理仿真结果分析总结 摘 要 在永磁同步电机运行时,电机的电气参数会受到温度以及磁链饱…

KDZD400Q便携式三氯乙烯浓度检测仪

一、产品概述 检测仪用于快速检测多种气体浓度、温湿度测量并超标报警的场合。采用2.31寸高清彩屏实时显示,选用进口品牌的气体传感器,主要检测原理有:电化学、红外、催化燃烧、热导、PID 光离子等。 可以检测管道中或受限空间、大气环境中的…

领英的大败退,是对本土化的深刻误解

领英似乎还没思考清楚,本土化到底意味着什么? 2023年5月9日,领英宣布本土化求职平台领英职场将在8月9日停止服务。据了解,领英职场于去年12月14日上线,上线不到半年就将下线,比领英之前推出的赤兔更“短命…

Java【网络原理1】什么是 TCP/IP 五层模型? 数据传输的封装和分用?

文章目录 前言一、网络协议分层二、数据的网络传输1, 封装2, 分用3, 实际情况 总结 前言 📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通过博客输出所学知识 📘如果本篇对你有帮助, 烦请点赞关注支持一波, 感…