删除一个集合中的所有文档

// 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 提供了几种方法来分析数据库中不同集合的存储空间占用比例:

方法 1: 使用 stats 命令

// 查看整个数据库的统计信息
db.stats()

// 查看特定集合的统计信息
db.collection('collectionName').stats()

stats() 命令会返回包含存储大小、索引大小等详细信息的统计数据。

方法 2: 获取所有集合的大小并计算比例

// 获取所有集合的存储空间信息并计算比例
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})`);
});

方法 3: 使用 MongoDB Compass

如果你使用 MongoDB Compass(MongoDB 的官方 GUI 工具),它提供了可视化的存储空间分析功能,可以直观地查看各个集合的存储空间占用情况。

注意事项

查询:列出同时存在 LLM 与 YFW 的 romProjectName

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" } }
])