You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB中删除除指定文档外的所有文档(Node.js官方驱动)

保留指定MongoDB文档并删除其余内容(Node.js官方驱动实现)

核心思路

通过匹配_id字段,删除所有**不等于目标文档_id**的记录,精准保留指定文档。

1. MongoDB Shell 命令

直接在MongoDB终端执行以下命令(替换your_collection_name为你的集合名):

db.your_collection_name.deleteMany({ _id: { $ne: "MAX_ERROR_NODE_SERVERS" } })
  • $ne是MongoDB的"不等于"操作符,会匹配所有_id不是MAX_ERROR_NODE_SERVERS的文档并删除。

2. Node.js 官方驱动代码实现

在你的Node.js项目中,使用官方驱动执行删除操作:

const { MongoClient } = require('mongodb');

async function keepOnlyTargetDoc() {
  const uri = 'mongodb://localhost:27017'; // 替换为你的MongoDB连接字符串
  const client = new MongoClient(uri);

  try {
    await client.connect();
    const db = client.db('your_database_name'); // 替换为你的数据库名
    const collection = db.collection('your_collection_name'); // 替换为你的集合名

    // 执行删除操作
    const result = await collection.deleteMany({
      _id: { $ne: "MAX_ERROR_NODE_SERVERS" }
    });

    console.log(`已删除 ${result.deletedCount} 条文档,仅保留目标文档`);
  } finally {
    await client.close();
  }
}

keepOnlyTargetDoc().catch(console.error);

注意事项

  • 确认目标文档的_id类型是字符串(与示例一致),避免因类型不匹配导致误删或保留失败。
  • 操作前建议先执行find({ _id: { $ne: "MAX_ERROR_NODE_SERVERS" } })查看待删除的文档,确认无误后再执行删除。

内容的提问来源于stack exchange,提问作者Sanithu Jayakody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:15:36