mongoDB常见指令

即使我们自己开发用不到mongoDB,但是接手别人项目的时候,别人如果用了,我们也要会简单调试一下

虽然mongoDB用的不是sql语句,但语句的逻辑都是相似的,比如查看数据库、数据表,增删改查这些

我们下面以docker为例,使用mongoDB

目录

[1 开启mongo容器](#1 开启mongo容器)

[2 进入mongoDB](#2 进入mongoDB)

[3 查看mongo中的数据库 show databases](#3 查看mongo中的数据库 show databases)

[4 操作数据库常用指令](#4 操作数据库常用指令)

[4.1 创建数据库](#4.1 创建数据库)

[4.1.1 使用数据库 use [数据库名称]](#4.1.1 使用数据库 use [数据库名称])

[4.1.2 创建数据表 db.createCollection("[数据表名称]")](#4.1.2 创建数据表 db.createCollection("[数据表名称]"))

[4.1.3 查看结果](#4.1.3 查看结果)

[4.2 删除当前数据库 db.dropDatabase()](#4.2 删除当前数据库 db.dropDatabase())

[5 操作数据表常用命令](#5 操作数据表常用命令)

[5.1 创建数据表 db.createCollection("[数据表名称]")](#5.1 创建数据表 db.createCollection("[数据表名称]"))

[5.2 查看选择数据库中的所有数据表 show collections](#5.2 查看选择数据库中的所有数据表 show collections)

[5.3 删除数据表 db.[数据表名称].drop()](#5.3 删除数据表 db.[数据表名称].drop())

[6 修改数据表内容常用指令](#6 修改数据表内容常用指令)

[6.1 在数据表中插入数据 db.[数据表名称].insert({["键"]:["值"]})](#6.1 在数据表中插入数据 db.[数据表名称].insert({["键"]:["值"]}))

[6.2 查看数据表中所有数据 db.[数据表名称].find()](#6.2 查看数据表中所有数据 db.[数据表名称].find())

[6.3 查看数据表中含有某特征的数据 db.[数据表名称].find({"[特征键]":"[特征值]"})](#6.3 查看数据表中含有某特征的数据 db.[数据表名称].find({"[特征键]":"[特征值]"}))

[6.4 更改数据 db.[数据表名称].update({"[特征键]":["特征值"],{set:{"\[要改的键\]":"\[要改的值\]"}}})](#6.4 更改数据 db.[数据表名称].update({"[特征键]":["特征值"],{set:{"[要改的键]":"[要改的值]"}}}))

[6.5 删除数据表某条数据 db.[数据表名称].remove({"[特征键]":"[特征值]"})](#6.5 删除数据表某条数据 db.[数据表名称].remove({"[特征键]":"[特征值]"}))


1 开启mongo容器

比如我们现在有一个mongo的镜像

执行docker run -d -p 27017:27017 mongo 可以开启mongo容器

  • 正如mysql的3306一样,mongo的默认端口是27017

2 进入mongoDB

比如我通过docker ps发现目前有一个开启的docker mongoDB容器

之后执行 docker exec -it [容器ID] bash 进入这个容器

之后再执行mongo,就可以执行mongo命令了

3 查看mongo中的数据库 show databases

后面是 0G 就相当于这个数据库中 基本 没有数据

4 操作数据库常用指令

4.1 创建数据库

mongodb不需要命令创建数据库,直接使用数据库,然后再创建一个数据表,会自动创建数据库

比如我下面想创建一个叫something的数据库

4.1.1 使用数据库 use [数据库名称]

4.1.2 创建数据表 db.createCollection("[数据表名称]")

比如我要创建一个叫 soemthing_collection 的数据表

4.1.3 查看结果

这个时候再查看数据库就能看到创建的 something 这个数据库了

4.2 删除当前数据库 db.dropDatabase()

mongo只能使用某一个数据库,然后再删除他,比如我要删除这里的something

那我首先要使用something这个数据库,然后再执行 db.dropDatabase()

执行后发现没有something这个数据库了

5 操作数据表常用命令

5.1 创建数据表 db.createCollection("[数据表名称]")

比如我要创建一个叫 soemthing_collection 的数据表

5.2 查看选择数据库中的所有数据表 show collections

首先选择数据库(如果之前选择过就不需要再选了),之后执行show collections可以查看选择数据库中的所有数据表

5.3 删除数据表 db.[数据表名称].drop()

比如我要删除 show collections 这个数据表

再看就没有了

6 修改数据表内容常用指令

6.1 在数据表中插入数据 db.[数据表名称].insert({["键"]:["值"]})

  • 创建后会自动添加主键id

6.2 查看数据表中所有数据 db.[数据表名称].find()

6.3 查看数据表中含有某特征的数据 db.[数据表名称].find({"[特征键]":"[特征值]"})

比如我想找name为suyu的数据

6.4 更改数据 db.[数据表名称].update({"[特征键]":["特征值"],{$set:{"[要改的键]":"[要改的值]"}}})

比如我要修改这一条

我可以通过这一条的id进行修改,然后把name的值改成123

发现可以成功修改

6.5 删除数据表某条数据 db.[数据表名称].remove({"[特征键]":"[特征值]"})

一般来讲我们可以在表中加一个键,然后给后端判断显示还是不显示,这种叫隐形删除。如果用了remove()指令就是直接删除

比如我们要删这一条数据

然后用remove删,建议将特征键选为ID,选为ID不会误删

执行后发现那条要删的数据就没有了

相关推荐
直有两条腿1 小时前
【数据迁移】HBase Bulkload批量加载原理
大数据·数据库·hbase
言之。1 小时前
ClickHouse 数据更新策略深度解析:突变操作与最佳实践
服务器·数据库·clickhouse
白衣鸽子2 小时前
数据库高可用设计的灵魂抉择:CAP权衡
数据库·后端
DokiDoki之父4 小时前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis
TDengine (老段)4 小时前
TDengine 数据函数 LN 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
机灵猫4 小时前
Redis 在订单系统中的实战应用:防重、限流与库存扣减
数据库·redis·缓存
木易2.04 小时前
从零构建RAG知识库管理系统(二)
数据库·oracle
程序新视界5 小时前
什么是MySQL JOIN查询的驱动表和被驱动表?
数据库·后端·mysql
lingggggaaaa5 小时前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
小光学长5 小时前
基于Vue的保护动物信息管理系统r7zl6b88 (程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js