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

MongoDB#常用脚本

批量插入数据脚本

const oneDayAgo  = new Date(Date.now() - 1 * 24 * 60 * 60 * 1000);

const documents = [];
for (let i = 1; i <= 100; i++) {
  documents.push({
	id: i, // 递增的 id
	createTime: oneDayAgo, // 1天前的日期
	data: `Sample data ${i}` // 其他字段(可选)
  });
}
// 创建test_data collection
db.test_data.inserMany(documents);

多collection关联删除脚本

const batchSize = 10000;
let deletedCount = 0;

do {
  // 1. 查询集合 B 中符合条件的 xxxId
  const xxxIdsToDelete = db.B.find(
    { status: { $ne: 1 } },
    { xxxId: 1, _id: 0 }
  ).toArray().map(doc => doc.xxxId);

  // 2. 删除集合 A 中符合条件的文档
  const result = db.A.deleteMany(
    {
      xxxId: { $in: xxxIdsToDelete }
    },
    { limit: batchSize } // 每批最多删除 batchSize 条数据
  );

  deletedCount = result.deletedCount;
  print(`已删除 ${deletedCount} 条数据`);
} while (deletedCount > 0);

相关文章:

  • Vulhub靶机 Apache Druid(CVE-2021-25646)(渗透测试详解)
  • 基于keepalived的Nginx高可用架构
  • 游戏引擎学习第119天
  • 【前端进阶】05 单线程的JavaScript如何管理任务的
  • Baklib企业CMS智能元数据与协作管理实践
  • 超级详细Spring AI运用Ollama大模型
  • 【CentOS7】安装MinIO
  • P1036 [NOIP 2002 普及组] 选数(dfs+素数筛选)
  • forge-1.21.x模组开发(一)注册方块和物品
  • Vue学习教程-15自定义指令
  • python 使用知识点 pyinstaller 虚拟环境打包
  • Java 18~20 新特性
  • Transformers快速入门-学习笔记
  • 一个基本的pyside6项目模板demo
  • Linux 命令大全完整版(06)
  • 【并发编程】线程池任务抛异常会怎么样?
  • NI Multisim仿真实现39计数器
  • Linux 权限系统和软件安装(二):深入理解 Linux 权限系统
  • 綫性與非綫性泛函分析與應用_3.例題-母本
  • AI发展迅速,是否还有学习前端的必要性?
  • ​王毅会见塔吉克斯坦外长穆赫里丁
  • 金正恩出席朝鲜人民军海军驱逐舰入水仪式
  • 财政部、证监会:加强对会计师事务所从事证券服务业务的全流程监管
  • 男子称喝中药治肺结节三个月后反变大增多,自贡卫健委回应
  • 南方医科大学原副校长宁习洲主动投案,接受审查调查
  • 漫画阅读APP刊载1200余部侵权作品:20人获刑,案件罚金超千万元