当前位置: 首页 > news >正文

MongoDB入门

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'})

相关文章:

  • 第十三届蓝桥杯真题Python c组D.数位排序(持续更新)
  • A Learning-Based Approach to Static Program Slicing —— 论文笔记
  • web应用合规(一)双因子认证2FA解决方案
  • 音视频通话 SDK
  • 数据结构——队列的基本操作
  • [leetcode] 70. 爬楼梯
  • 前端工程化之vite
  • 汽修行业的知识库搭建:赋能在线教育与知识付费
  • uni-app之旅-day02-分类页面
  • 端模一体,猎豹移动对大模型机器人发展路径清晰
  • Ubuntu下安装向日葵:闪退
  • 解析.NET框架与平台:构建高效应用程序的基石
  • Linux快速安装ClickHouse(附官方文档)
  • OpenFeign-快速使用-连接池-使用的最佳方案-日志配置
  • 9.30今日错题解析(软考)
  • 【刷算法】求1+2+3+...+n
  • Bytom交易说明(账户管理模式)
  • CAP 一致性协议及应用解析
  • EOS是什么
  • Java的Interrupt与线程中断
  • Java深入 - 深入理解Java集合
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • v-if和v-for连用出现的问题
  • 读懂package.json -- 依赖管理
  • 分类模型——Logistics Regression
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 聚簇索引和非聚簇索引
  • 力扣(LeetCode)965
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 跳前端坑前,先看看这个!!
  • 想写好前端,先练好内功
  • 赢得Docker挑战最佳实践
  • 函数计算新功能-----支持C#函数
  • ​力扣解法汇总946-验证栈序列
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • $$$$GB2312-80区位编码表$$$$
  • $().each和$.each的区别
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (2)空速传感器
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (C语言)球球大作战
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)ssm码农论坛 毕业设计 231126
  • (黑马点评)二、短信登录功能实现
  • (力扣题库)跳跃游戏II(c++)
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (四)stm32之通信协议
  • (四)汇编语言——简单程序
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • .NET技术成长路线架构图