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'})
相关推荐
白帽小丑5 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak8 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
2601_9626838910 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程10 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_11 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫12 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL13 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R13 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
IvorySQL13 小时前
IvorySQL HTAP 实时湖仓接入引擎
数据库·postgresql·开源·htap·ivorysql
忧郁的紫菜13 小时前
WCF+JSON+实体对象与WebService+DataSet效率大比拼
数据库·oracle·json