首页 > 数据库 >MongoDB入门

MongoDB入门

时间:2024-09-30 15:21:00浏览次数:7  
标签:... 入门 MongoDB db 查询 field 文档 student

MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

下载

Download MongoDB Community Server | MongoDB

MongoDB的基本操作

添加数据

db.collection.insertOne(document) // 插入单个文档  
db.collection.insertMany([document1, document2, ...]) // 插入多个文档

查询数据

db.student.find()   //无条件查询

db.student.find({name:"周瑜"})

//查询性别是男,年龄大于20的信息
db.student.find({sex:"男",age:{$gte:20}})

修改数据

//修改
//把20岁以上的男同学,班级改成2-6
db.student.updateMany({sex:"男",age:{$gte:20}},{$set:{class:"2-6"}})

//把曹操的年龄改成20
db.student.update({name:"曹操"},{$set:{age:20}})
  • query:用于指定查询条件。

  • update:用于指定更新操作,常用的更新操作符包括$set$inc等。

  • upsert:一个可选参数,当为true时,如果找不到符合查询条件的文档,将插入一个新文档。

删除数据

//删除jack的年龄
db.student.update({name:"jack"},{$unset:{age:1}})

//删除
//删除2-6班所有的男同学
db.student.remove({class:"2-6",sex:"男"})
//删除所有教师记录
db.teacher.remove({})

 对数组操作

//给jack添加教务主任角色
db.teacher.update({name:"jack"},{$push:{role:"教务主任"}})
//删除jack的副校长角色
db.teacher.update({name:"jack"},{$pull:{role:"副校长"}})

查询表达式

  1. 基本查询

    • {field: value}:查询field列的值为value的文档。

  2. 比较运算符

    • $ne:不等于。例如,{field: {$ne: value}}查询field列的值不等于value的文档。

    • $gt:大于。

    • $gte:大于等于。

    • $lt:小于。

    • $lte:小于等于。

    • $in:在...之内。例如,{field: {$in: [v1, v2, ...]}}查询field列的值在数组[v1, v2, ...]中的文档。

    • $nin:不在...之内。

  3. 逻辑运算符

    • $and:所有条件都满足。

    • $or:至少一个条件满足。

    • $nor:所有条件都不满足。

  4. 元素运算符

    • $exists:检查字段是否存在。例如,{field: {$exists: 1}}查询含有field字段的文档。

    • $all:数组字段包含所有指定元素。例如,{field: {$all: [v1, v2, ...]}}查询field列是一个数组且至少包含v1, v2, ...的文档。

  5. 正则表达式

    • 使用$regex进行模式匹配。例如,{field: {$regex: /pattern/}}查询field字段匹配正则表达式pattern的文档。

  6. $where

    • 允许使用JavaScript表达式作为查询条件。例如,db.collection.find({$where: 'this.field > 10'})

标签:...,入门,MongoDB,db,查询,field,文档,student
From: https://blog.csdn.net/weixin_52394366/article/details/142636325

相关文章

  • [Python数据分析]最通俗入门Kmeans聚类分析,可视化展示代码。
     什么是k-means分析?【头条@William数据分析,看原版】    想象一下,你有一堆五颜六色的糖果,你想把它们按照颜色分成几堆。k-means分析就是这么一个自动分类的过程。它会根据糖果的颜色特征,把它们分成若干个组,每个组里的糖果颜色都比较相似。更专业一点说,k-means分析是一......
  • 快速入门Java中的HTTP请求
    1.使用java.net.HttpURLConnectionJava标准库中的HttpURLConnection是最基本的方式,用于发送HTTP请求。示例:发送GET请求发送POST请求2.使用ApacheHttpClientApacheHttpClient是一个强大的HTTP客户端库,支持高级HTTP通信功能。添加依赖如果你使用Maven,添加以下依赖到你......
  • C++入门
    第1节:开发环境的搭建与配置1.1目标在本节课中,学生将学习如何在Windows上搭建一个现代化的C++开发环境,并使用VSCode和CMake工具进行C++程序的开发与调试。学生将掌握以下内容:安装VSCode及C++插件安装MinGW或其他C++编译器安装并配置CMake创建并编译第一个C++项目使用VSCod......
  • 从入门到精通,一份完整的黑客技术成长清单
    在2017年,一个名叫“AwesomeHacking”的GitHub项目曾引发大量网友的关注,这个项目是由@HackwithGithub维护的,这是一个经常会发布一些最新安全开源项目和黑客技巧的Twitter账户。“AwesomeHacking”是一份完整的黑客技术成长清单,里边索引了数十个不同方向的黑客技能图谱。如......
  • 龙蜥8部署mongodb7分片集群
    环境描述:AnolisOSrelease8.6mongodb-org-7.0.9-1服务器规划:主机名IP地址MongosServer组件端口ConfigServer组件端口ShardServer组件端口mongodb01192.168.109.1372701727018主节点:27019副本节点:27020仲裁节点:27021mongodb02192.168.109.13827017......
  • [.NET Blog] .NET Aspire 测试入门
    https://devblogs.microsoft.com/dotnet/getting-started-with-testing-and-dotnet-aspire/自动化测试是软件开发的重要一环。它可以帮助我们尽早确认软件中的缺陷和防止回归问题。在本文中,我们将探讨如何在.NETAspire中开始测试,支持我们进行跨分布式应用的测试场景。测试分......
  • 网络安全自学入门:(超详细)从入门到精通学习路线&规划,学完即可就业
    ......
  • linux路由知识入门
    博主githubpageiprule和iproute网络包优先匹配iprule中的规则,然后再被转到相应的iptable路由规则处理iprule#output#0:fromalllookuplocal#32766:fromalllookupmain#32767:fromalllookupdefault这三条规则是内核创建的前面的数字代......
  • 【2024精华版】从零开始的大模型LLM学习全攻略:一文掌握从入门到精通
    ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料,让不少人惊呼:“未来是属于AI的”。AI大模型——成为互联网从业者必备技能。......
  • 【数一线性代数】019入门
    Index推荐阅读:https://blog.csdn.net/weixin_60702024/article/details/141405330分析实现总结分析推荐阅读:https://blog.csdn.net/weixin_60702024/article/details/141405330给定链表A的头结点,将A中奇数结点依旧存放在链表A,偶数结点存放在链表B。分析实现通过......