// MongoDB 删除集合中所有文档
db.collection('collectionName').deleteMany({})
.then(result => {
console.log(`已删除 ${result.deletedCount} 个文档`);
})
.catch(error => {
console.error('删除失败:', error);
});
// 删除整个集合
db.collection('collectionName').drop()
.then(result => {
console.log('集合已删除');
})
.catch(error => {
console.error('删除集合失败:', error);
});
是的,MongoDB 提供了几种方法来分析数据库中不同集合的存储空间占用比例:
// 查看整个数据库的统计信息
db.stats()
// 查看特定集合的统计信息
db.collection('collectionName').stats()
stats() 命令会返回包含存储大小、索引大小等详细信息的统计数据。
// 获取所有集合的存储空间信息并计算比例
function getCollectionSizeStats() {
const collInfos = [];
const totalSize = db.stats().dataSize;
db.getCollectionNames().forEach(collName => {
const stats = db.getCollection(collName).stats();
collInfos.push({
name: collName,
size: stats.size,
storageSize: stats.storageSize,
percentage: (stats.size / totalSize * 100).toFixed(2) + '%'
});
});
// 按存储空间大小降序排序
return collInfos.sort((a, b) => b.size - a.size);
}
// 执行并打印结果
getCollectionSizeStats().forEach(info => {
print(`${info.name}: ${(info.size / (1024 * 1024)).toFixed(2)} MB (${info.percentage})`);
});
如果你使用 MongoDB Compass(MongoDB 的官方 GUI 工具),它提供了可视化的存储空间分析功能,可以直观地查看各个集合的存储空间占用情况。
db.collection('yourColl').aggregate([
{ $match: { network: { $in: ["LLM", "YFW"] } } },
{ $group: { _id: "$romProjectName", kinds: { $addToSet: "$network" } } },
{ $match: { kinds: { $all: ["LLM", "YFW"] } } },
{ $project: { _id: 0, romProjectName: "$_id" } }
])
{ romProjectName: 1, network: 1 } 以加速匹配与分组。