MongoDB的基本操作

embedded/2024/10/22 12:16:52/

🌷数据库准备

🎈Mongoshell

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

cd /home/ubuntu
mkdir -p mongodb/data
mkdir -p mongodb/log
touch mongodb/log/mongodb.log

执行mongodb命令启动mongdb服务

mongod --dbpath /home/ubuntu/mongodb/data --logpath /home/ubuntu/mongodb/log/mongodb.log --logappend --fork

启动mongodb

mongodbsh

🎈创建数据库

use 数据库
如果数据库不存在,则创建数据库,如果存在,则直接切换到指定路径

例:创建mydb数据库

use mydb

查看所有数据库

show dbs

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

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

 🎈删除数据库

db.dropDatabase()

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

这里以删除mydb数据库为例

🌷集合操作

🎈显式创建集合

db.createCollection(name,option)

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

🎈重命名集合

db.mydb.renameCollection()

例:将mydb改名为myDB

🎈查询所有集合

show collections

🎈删除集合

db.集合名.drop()

例:删除myDB集合

🌷文档操作

🎈插入文档

1.插入单个文档

db.集合名.insertOne({})

2.插入多个文档

db.集合名.insertMany({[]})

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

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()方法查看集合

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

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

🎈更新文档

1.单条更新:updateOne

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

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

db.stuinfo.updateOne({name: 'nancy'}, {$set: {name: 'king'}})

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

db.stuinfo.find({})

 2.多条更新:updateMany

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

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

db.stuinfo.updateMany({name: 'nancy'}, {$set: {name: 'joker'}})
db.stuinfo.find({})

操作结果如图:

🎈删除文档 

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

语法格式:

db.COLLECTION_NAME.deleteOne(<query>)
db.COLLECTION_NAME.deleteMany(<query>)

参数说明:

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

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

db.col.deleteMany({})
db.col.find({})

具体操作如图所示:

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

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

db.stuinfo.deleteMany({name:'joker'})
db.stuinfo.find({})

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

db.stuinfo.deleteOne({age: 18})
db.stuinfo.find({})


http://www.ppmy.cn/embedded/129553.html

相关文章

探索KPM71RUG7T68 SSD:企业级存储的可靠选择

KPM71RUG7T68 SSD是一款高性能企业级固态硬盘&#xff0c;专为满足数据中心及企业级应用的需求而设计。它采用了先进的NAND闪存技术&#xff0c;提供卓越的读写速度和可靠性&#xff0c;确保在各种工作负载下都能稳定运行。 首先&#xff0c;从性能上来看&#xff0c;KPM71RUG…

特步引入IPD管理,钉钉项目 Teambition 助力高效产品研发管理

中国是全球第二大消费市场&#xff0c;运动鞋服行业拥有着巨大的发展潜力。在过去五年时间里&#xff0c;随着中国产品品牌和质量的提升&#xff0c;体育市场的占有率格局发生了显著变化&#xff0c;不同于部分国际品牌巨头营收持续减弱&#xff0c;国产领军体育运动品牌「特步…

更改USB 网卡名称

在code/kernel-6.1/drivers/net/usb/usbnet.c文件中更 有几处地都可以改 最好在添加下面一行。但是要注意同时只能用一个usb网卡&#xff0c;多个不知道会怎么样 strcpy(dev->name,“eth1”); //第三处添加 usbnet_probe (struct usb_interface *udev, const struct usb_d…

计算机网络技术示例

IP地址和物理地址&#xff08;通常指MAC地址&#xff09; 1. 定义与本质&#xff1a; - IP地址&#xff1a;是互联网协议地址&#xff0c;是用于分组交换数据网络的一种逻辑地址&#xff0c;用于在网络中唯一标识一台主机或网络设备的位置。它是网络层的地址&#xff0c;由网…

初识Flink

诞生背景 伴随现代信息技术的持续发展&#xff0c;我们能清晰地察觉到&#xff0c;信息生产的规模不断扩张&#xff0c;信息更新的速率持续攀升。以电商系统为例&#xff0c;用户从搜索商品到下单支付&#xff0c;整个链路可能短短几秒就可以完成&#xff0c;倘若能在这条链路…

OpenCV高级图形用户界面(21)暂停程序执行并等待用户按键输入函数waitKey()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 等待按键 该函数 waitKey 在 delay≤0 时无限等待按键事件&#xff0c;或者在 delay 为正数时等待 delay 毫秒。由于操作系统在切换线程时有最小…

基于ElementPlus的table组件封装

前言 我们在使用UI库编写页面的时候&#xff0c;特别是账务系统&#xff0c;需要用到表格的情况会比较多&#xff0c;如果我们每次都是复制一遍UI库中的demo然后进行调整&#xff0c;这样造成的结果是多次引入 Table 组件&#xff0c;而且从前端开发规范来讲&#xff0c;不符合…

双线性变换法

给定模拟信号&#xff0c;要用数字滤波器对它进行滤波。按照双线性变换法&#xff0c;步骤如下&#xff08;假设为高通滤波器&#xff09;&#xff1a; &#xff08;1&#xff09;选择一个采样频率&#xff0c;对进行采样&#xff0c;得到时域离散信号。 &#xff08;2&#…