MongoDB的基本操作

🌷数据库准备

🎈Mongoshell

1.在指定目录下创建mongodb文件夹、其子文件log和data以及mongodb.log

bash 复制代码
cd /home/ubuntu
mkdir -p mongodb/data
mkdir -p mongodb/log
touch mongodb/log/mongodb.log

执行mongodb命令启动mongdb服务

bash 复制代码
mongod --dbpath /home/ubuntu/mongodb/data --logpath /home/ubuntu/mongodb/log/mongodb.log --logappend --fork

启动mongodb

bash 复制代码
mongodbsh

🎈创建数据库

bash 复制代码
use 数据库名
如果数据库不存在,则创建数据库,如果存在,则直接切换到指定路径

例:创建mydb数据库

bash 复制代码
use mydb

查看所有数据库

bash 复制代码
show dbs

可以看到,新创建的mydb不在数据库列表中,这是因为MongoDB中数据库和集合的创建都输入懒创建,要想显示它们,向mydb数据库中插入一些数据即可

MongoDB中默认的数据库为test,如果没有创建新的数据库,集合将默认存放在test数据库中

🎈删除数据库

bash 复制代码
db.dropDatabase()

可以使用db命令查看当前数据库名

这里以删除mydb数据库为例

🌷集合操作

🎈显式创建集合

bash 复制代码
db.createCollection(name,option)

例如在mydb下创建student集合**(注意:先创建数据库,在创建集合)**

🎈重命名集合

bash 复制代码
db.mydb.renameCollection()

例:将mydb改名为myDB

🎈查询所有集合

bash 复制代码
show collections

🎈删除集合

bash 复制代码
db.集合名.drop()

例:删除myDB集合

🌷文档操作

🎈插入文档

1.插入单个文档

bash 复制代码
db.集合名.insertOne({})

2.插入多个文档

bash 复制代码
db.集合名.insertMany({[]})

例:在mydb数据库中student集合下插入如下图所示的student集合的表

bash 复制代码
db.student.insertMany([
{name:'Alice',age:20,gender:'female',major:'Computer Science'},
{name:'Bob',age:22,gender:'male',major:'Mathmatics'},
{name:'Charlie',age:21,gender:'male',major:'Physics'}])

插入完成后用find()方法查看集合

还可以先将文档定义成一个变量,再进行插入

bash 复制代码
s={name:'Alice',age:20,gender:'female',major:'Computer Science'}
db.student.insertOne(s)
db.stuent.find({})

🎈更新文档

1.单条更新:updateOne

语法:
bash 复制代码
db.collection.updateOne(<query>,<objNew>)
  • query:查询的条件
  • objNew:更新的操作

例:我们更新stuinfo文档中名叫nancy的更改为king

cpp 复制代码
db.stuinfo.updateOne({name: 'nancy'}, {$set: {name: 'king'}})

再用find方法查看一下是否修改成功

bash 复制代码
db.stuinfo.find({})

2.多条更新:updateMany

语法:
bash 复制代码
db.collection.updateMany(<query>,<objNew>)
  • query:查询调价
  • objNew:更新操作

例:将姓名name为"nancy"的所有文档更新为"joker"

bash 复制代码
db.stuinfo.updateMany({name: 'nancy'}, {$set: {name: 'joker'}})
db.stuinfo.find({})

操作结果如图:

🎈删除文档

deleteOne()和deleteMany()方法可以来移除集合中的数据

语法格式:

bash 复制代码
db.COLLECTION_NAME.deleteOne(<query>)
db.COLLECTION_NAME.deleteMany(<query>)

参数说明:

query:delete的查询条件,类似sql delete查询内where后面的语句

(1)删除集合col下全部文档

bash 复制代码
db.col.deleteMany({})
db.col.find({})

具体操作如图所示:

(2)删除指定条件的文档

删除集合stuinfo中姓名name为joker的全部文档

bash 复制代码
db.stuinfo.deleteMany({name:'joker'})
db.stuinfo.find({})

删除年龄age为18的第一个文档

bash 复制代码
db.stuinfo.deleteOne({age: 18})
db.stuinfo.find({})
相关推荐
jiushidt27 分钟前
在 DBeaver 中为 SQLite 启用 SpatiaLite
数据库·sqlite
码士集团小青1 小时前
Google 开源了啥,让 AI Agent 碰数据库不再是定时炸弹
数据库·oracle
CS创新实验室1 小时前
数据库突然断电,凭什么没丢数据?——WAL 日志与崩溃恢复
数据库·mysql
Warolitbos2 小时前
【数据库】SQL面试基础15题,测试/开发必背速查
数据库
ClouGence2 小时前
开源数据库管理工具 CloudDM 新版本上线,新增 AI SQL 助手,支持 Elasticsearch、崖山数据库
数据库·sql·elasticsearch
ly76892 小时前
PostgreSQL 执行计划深读:从 EXPLAIN 输出到代价模型驱动的 SQL 改写
数据库·sql·postgresql·explain·执行计划·代价模型
Python自动化直播3 小时前
自动化笔记:素材管理、命名、轮换的几条土办法
linux·运维·数据库
xiaomuzuirenzhen3 小时前
2027校招ERP实施顾问:大数据管理与应用专业如何用SQL、BI证明业务能力
大数据·数据库
底层玩家老张3 小时前
从副本集到分片:百亿级文档数据的KES架构边界
数据库·分布式架构·分片·架构选型·文档数据库
ss2733 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 16 PostgreSQL子查询与嵌套查询(下)
数据库·笔记·postgresql