【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()

相关推荐
Coder_Boy_5 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy5 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道7 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_12498707537 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha7 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_7 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance7 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋7 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.8 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
天天爱吃肉82188 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车