【MongoDB 基本语法】数据库和集合的基本操作--探秘 MongoDB

摘要

MongoDB 是一款 ​NoSQL 文档型数据库。适合处理大量非结构化和半结构化数据。

对数据库和集合的基本操作如下:

操作类别 操作命令 功能说明
创建数据库 use database_name 切换到指定数据库,不存在则自动创建
创建集合 db.createCollection("name") 显式创建集合
查看数据库 show dbs 显示所有非空数据库
db 显示当前使用的数据库
删除数据库 db.dropDatabase() 删除当前数据库(需谨慎)
创建 capped 集合 db.createCollection("name", {capped: true, max: 10000}) 创建固定大小集合
隐式创建集合 db.collection.insert(document) 插入文档时自动创建集合
查看集合 show collectionsshow tables 显示当前数据库的所有集合
删除集合 db.collection.drop() 删除指定集合

1 数据库的基础操作

1.1 查看数据库

启动MondoDB数据库服务,进入到MondoDB客户端时,默认进入初始数据库即,test数据库。

查看所有数据库show dbs

查看当前数据库db

1.2 创建和切换数据库

创建和切换数据的命令是一样的--use database_name

也就说,如果切换到一个没有创建的数据库,会自动创建该数据库。

1.3 删除数据库

删除数据库需要先切换(use)到该数据中,然后使用命令:db.dropDatabase()

该命令的使用相当于调用类的方法,以此类比,MondoDB的操作都类似调用方法。

2 集合的基础操作

MongoDB的集合类似于MySQL的表。当要对集合操作时,需要先切换到该集合对应的数据库。

2.1 查看

先进入到对应的数据库,然后才可以查看集合。

命令:show collections

或命令:show tables

对数据库和集合的基本操作中,查看都使用了相同的show

2.2 集合的创建

2.2.1 创建可持续增长的集合

创建可持续增长的集合:db.createCollection("c1")

注:MongoDB本身对单个文档(类似插入的一行数据)的大小有16MB的限制。有的系统会对集合的内存有上限。

2.2.2 创建capped集合

capped集合是固定大小的集合,当达到大小或文档数量限制时,会自动覆盖最旧的文档。size参数以字节为单位,需同时指定。

命令:db.createCollection("c_name",{capped: trrue, size: *, max: * })

创建一个固定大小集合(capped: true),限制条件为:

size: 6142800:集合最大存储空间(字节)

max: 10000:集合最多存储的文档数量(当达到任一限制时,旧文档会被新文档覆盖)

2.2.3 隐式创建集合

通过插入文档自动创建集合。

命令:db.c_name.insert({......})

返回结果 WriteResult({ "nInserted" : 1 }) 可以看出,写入成功了。其中 nInserted: 1 表示成功插入了 1 条文档。

2.3 集合的删除

可以发现集合的插入需要显示出哪一个集合,类似,集合的删除也需要显示到哪一个集合。

命令:db.c_name.drop()

相关推荐
霖霖总总1 天前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..1 天前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据1 天前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦1 天前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
YMatrix 官方技术社区1 天前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录1 天前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong1 天前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
欧亚学术1 天前
突发!刚刚新增17本期刊被剔除!
数据库·论文·sci·期刊·博士·scopus·发表
黑白极客1 天前
怎么给字符串字段加索引?日志系统 一条更新语句是怎么执行的
java·数据库·sql·mysql·引擎
大厂技术总监下海1 天前
数据湖加速、实时数仓、统一查询层:Apache Doris 如何成为现代数据架构的“高性能中枢”?
大数据·数据库·算法·apache