拾光记录
218个文档 导航 作者 Gitee
随笔记录4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端知识4
基础知识17
Vue框架19
UniApp14
微信小程序1
Java编程6
Java基础15
SpringBoot31
SpringMVC18
MyBatis9
SpringCloud15
中间件2
数据库4
MySQL13
Redis8
MongoDB10
其他数据库1
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv管理工具
Linux12
Linux常用命令Jar启动脚本VirtualBox安装CentOSVirtualBox安装Ubuntu树莓派安装及使用frp内网穿透ArchLinux:基础系统安装ArchLInux:图形化界面安装ArchLinux:常用软件ArchLinux:深度优化ArchLinux:NiriArchLinux:模块记录
软件工具12
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaRustFSPicGoVSCodeDocker
创意设计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关联过滤语句批量更新条件批量删除只查询某列值