mongdb基础操作

简介: mongdb基础操作

 数据库

查看数据库

show dbs;

image.gif

切换数据库如果没有对应的数据库则创建

use 数据库名;

image.gif

删除当前数据库

db.dropDatabase();

image.gif

集合

查看集合

show tables;

image.gif

show collections;

image.gif

创建集合

db.createCollection("集合名")

image.gif

删除集合

db.集合名.drop();

image.gif

文档

本例的集合名称为inventory

添加单个文档

db.集合.insertOne()
(集合不存在会创建一个集合)
(如果不指定id, MongoDB会使用ObjectId的value作为id)

image.gif

db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } })

image.gif

添加多个文档

db.集合.insertMany()
(集合不存在会创建一个集合)

image.gif

db.inventory.insertMany( [
  { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
  { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
  { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
  { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
  { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);

image.gif

查询集合所有文档

db.inventory.find({})

image.gif

匹配size: { h: 14, w: 21, uom: "cm" }内容的文档

db.inventory.find( { size: { h: 14, w: 21, uom: "cm" } } )

image.gif

匹配size中uom属性为“in”的文档

db.inventory.find( { "size.uom": "in" } )

image.gif

匹配size中h属性值小于15的文档

db.inventory.find( { "size.h": { $lt: 15 } } )

image.gif

匹配h属性小于15并且uom属性为“in”,并且“status”属性为"D"的文档

db.inventory.find( { "size.h": { $lt: 15 }, "size.uom": "in", status: "D" } )

image.gif

删除集合所有文档

db.inventory.deleteMany({})

image.gif

删除指定条件的文档

db.inventory.deleteMany({ status : "A" })

image.gif

最多删除1个指定条件的文档

db.inventory.deleteOne( { status: "D" } )

image.gif

插入下列文档,供更新操作

db.inventory.insertMany( [
  { item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" },{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },{ item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" },{ item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
{ item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" },{ item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }] );

image.gif

更新item值为“paper”的第一个文档 将它的size.uom设置为“cm”,status值设置为"P" 并且把lastModified字段更新为当前时间,如果该字段不存在,则生成一个

db.inventory.updateOne(
  { item: "paper" },
  {$set: { "size.uom": "cm", status: "P" },
  $currentDate: { lastModified: true }}
)

image.gif

更新qty属性值小于50的文档 将它的size.uom设置为“in”,status值设置为"P" 并且把lastModified字段更新为当前时间,如果该字段不存在,则生成一个

db.inventory.updateMany(
  { "qty": { $lt: 50 } },
  { $set: { "size.uom": "in", status: "P" },
   $currentDate: { lastModified: true }
  }
)

image.gif

把item属性为“paper”的文档替换成下面的内容

db.inventory.replaceOne(
  { item: "paper" },{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] })

image.gif


相关文章
|
数据可视化 前端开发 程序员
探索iVX:颠覆传统低代码平台的新潮流
探索iVX:颠覆传统低代码平台的新潮流
1350 145
|
存储 Ubuntu Linux
sudo apt update和sudo apt upgrade有啥区别
【4月更文挑战第1天】
8006 4
|
存储 自然语言处理 搜索推荐
GraphRAG:构建下一代知识图谱驱动的对话系统
【10月更文挑战第10天】随着自然语言处理(NLP)技术的发展,对话系统已经从简单的基于规则的问答系统演变为能够理解复杂语境并提供个性化服务的智能助手。然而,传统的对话系统往往依赖于预先定义好的模板或有限的知识库,这限制了它们在理解和生成多样化响应方面的能力。为了解决这一问题,GraphRAG(Graph-based Retrieval-Augmented Generation)技术应运而生。GraphRAG结合了大规模的知识图谱和先进的NLP模型,旨在提升对话系统的理解和响应能力。
1140 1
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
815 7
|
弹性计算 运维 监控
阿里云运维第一步(监控):开箱即用的监控
监控运维是一个体系化的工作,完善这个体系非一日之功。但是我们的业务不可一日无监控“裸奔”,在阿里云怎么样快速低成本的建立第一道资源监控的护城河?开箱即用的云监控,将会是你进入阿里云的第一个可靠的小伙伴。
14646 105
|
存储 固态存储 NoSQL
数据存储策略——lsm-tree
数据存储策略——lsm-tree
数据存储策略——lsm-tree
Vue3栅格(Grid)
该文章介绍了一种基于24栅格系统的布局方案,通过`Row`和`Col`组件实现灵活的内容排布。`Row`负责水平方向的一组`Col`,`Col`则用于承载实际内容。栅格系统支持1到24的列值,超过24的`Col`会自动换行。此外,系统还支持Flex布局,允许子元素进行多种对齐方式,并可通过响应式属性适应不同屏幕尺寸。文章提供了详细的API说明和代码示例,展示了如何在实际项目中应用这一布局系统。
581 1
Vue3栅格(Grid)
|
JavaScript 前端开发 Go
JavaScript高级笔记-coderwhy版本(二)
JavaScript高级笔记-coderwhy版本
562 0
JavaScript高级笔记-coderwhy版本(二)
|
人工智能 编解码 API
通义万相AIGC技术测评报告
**摘要:** 通义万相是阿里云的AI绘画模型,提供清晰的部署指南和易用的API,适合新手。资源部署耗时约10分钟,API响应快,支持多种风格图片生成,适用于广告、媒体等领域。产品性价比高,功能包括文本到图像转换等,但仍有改进空间,如增加服装纹理选项、互动功能和更多API接口。建议完善功能、加强推广和降低成本以吸引更多用户。[链接](https://developer.aliyun.com/topic/tongyi-wanxiang?spm=a2c6h.27063436.J_6978680750.5.3a774f461hv8qD)
1524 6