如何在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
相关产品推荐
相关产品推荐

