logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端编程3
前端基础知识16
UniApp15
Vue框架19
Java编程7
Java基础知识14
SpringBoot31
SpringMVC14
MyBatis8
SpringCloud15
RocketMQ1
MyCat1
数据库4
MySQL6
Redis7
MongoDB10
H21
Java技术栈4
知识整理分布式锁的实现方案MySQL事务MySQL的锁
软件工具箱14
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaPicGoRustFSVSCodeDockerObsidianObs录制
Linux知识11
树莓派安装及使用ArchLinux:常用软件ArchLinux:基础系统安装ArchLinux:深度优化ArchLInux:图形化界面安装ArchLinux:Nirifrp内网穿透Jar启动脚本Linux常用命令VirtualBox安装CentOSVirtualBox安装Ubuntu
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

学习网站

菜鸟教程MongoDB

创建数据库

use DATABASE_NAME

当没有任何数据时show dbs无法查看到

创建集合

db.createCollection("user_info")

使用show collections查看集合

删除集合

db.collection.drop()

Robo3T操作

// 根据条件删除
db.getCollection('testEntity').remove({"_id" : ObjectId("645510f187330a37dc844055")})
// 添加一条数据
db.getCollection('testEntity').insert({"_id" : ObjectId("645510f187330a37dc844055")})

批量修改

db.getCollection('sw_school').update(
{'app_no':"7"}, //query
{$set:{'createDate': ISODate("2021-04-12T11:16:22.098+08:00")}},// update 
{multi:true,upsert:false} // 批量更新
)

模糊查询

criteria.and("name").regex(name);

db.getCollection('news_v2').find({"title" : {"$regex":"如果"}})

索引

查看索引

db.col.getIndexes()

创建索引

db.col.createIndex({"title":1})
db.col.createIndex({"title":1,"description":-1})

语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可

删除索引

删除集合所有索引
db.getCollection('chongqing').dropIndexes()

删除集合指定索引
db.getCollection('chongqing').dropIndex('索引名')

随机查询

$sample

db.answers.aggregate([
    { $sample: { size: 20 }}  
])  

3.2+版本中新增,类似于大数据中的“数据采样”方式,从input中随机选择N条documents,语法“{$sample: {size: }}”。如果N大于collection中总数据的5%,那么$sample将会执行collection扫描、sort,然后选择top N条文档;如果N小于5%,对于wiredTiger而言则会遍历collection并使用“伪随机”的方式选取N条文档,对于MMAPv1引擎则在_id索引上随机选取N条文档

关联过滤语句

db.sw_integral_user.aggregate([
	{$lookup:{
       from: "user_base_info",
       localField: "uid",
       foreignField: "_id",
       as: "user"
     }},
		 {
      $unwind: "$user"
    },
	{$project:{ _id: 0, integralCount: 1, name:"$user.realname", "nick":"$user.info.name","mobile":"$user.mobile"}},
	{$sort: {integralCount: -1}}
])

结果

{
    "integralCount": NumberLong("1084"),
    "name": "李牧华",
    "nick": "李牧华",
    "mobile": "182857586xx"
}

批量更新

db.getCollection('sw_report_record').find({"reportStatus" : 6.0}).forEach(
   function(item){                
       db.getCollection('sw_report_record').update({"_id":item._id},{$set:{"reportStatus":5}})
   }
)

// 更新整型
db.getCollection('test_paper_question_bank').find({}).forEach(
   function(item){                
       db.getCollection('test_paper_question_bank').update({"_id":item._id},{$set:{"cityCode": NumberInt(520502)}})
   }
)

条件批量删除

db.recordChipScan.deleteMany({ "createTime": { $gt: ISODate("2023-05-06T16:44:33.005+08:00") } })

只查询某列值

db.user.find({},{'phone':1})
学习网站
创建数据库
创建集合
删除集合
Robo3T操作
批量修改
模糊查询
索引
查看索引
创建索引
删除索引
随机查询
$sample
关联过滤语句
批量更新
条件批量删除
只查询某列值