当前位置: 首页 > 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发展迅速,是否还有学习前端的必要性?
  • 今晚上海地铁1、2、10、17号线加开定点班车至次日0点
  • 辽宁男篮被横扫这一晚,中国篮球的一个时代落幕了
  • 人民日报钟声:国际社会应共同维护科学溯源的正确方向
  • 世界黄金协会:一季度全球黄金投资需求同比增170%
  • 滨江集团:一季度营收225.07亿元,净利润9.75亿元
  • 成都警方:在地铁公共区域用改装设备偷拍女乘客,男子被行拘