【问题标题】:How can I get size (bytes) of a MongoDB collection with Mongoose?如何使用 Mongoose 获取 MongoDB 集合的大小(字节)?
【发布时间】:2016-05-02 13:35:31
【问题描述】:

想象一下我有一个像这样的 Mongoose 模型:

mongoose = require('mongoose')
Products = mongoose.model('Products')

如何获取完整对应集合的大小(以字节为单位)?我找到了db.collection.storageSize,但在 Mongoose API 文档中找不到它。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    Mongoose 没有为此提供抽象,但您可以从 Mongoose 模型的 collection 属性访问本机驱动程序集合方法,例如 stats()。该方法提供集合的大小作为结果的storageSize 属性:

    Products.collection.stats(function(err, results) {
        console.log(results.storageSize);
    });
    

    【讨论】:

    • 如果我想检查整个数据库的大小,情况是我有 500mb 的免费 MongoDB 托管,我想在管理面板上显示剩余的数据库数量,并在达到 90 时生成电子邮件% 为了避免因数据库已满而造成的任何不便,答案可能是“一个一个地获取所有集合的所有大小,然后添加”我理解,但如果有一种方法可以一次获取整个数据库的大小会更方便,任何帮助都会得到帮助
    • 最好将其作为一个新问题发布@InzamamMalik
    • const stats = await mongoose.connection.db.stats()
    【解决方案2】:
    var stats = Products.stats(function(err, stats) {
      // second parameter stats contains the result from  stats
      var storageSize = stats.storageSize;
    });
    

    获取Products 集合的统计信息。

    【讨论】:

    • 你在哪里使用 Mongoose 获得了 db 对象?
    • 对不起,使用猫鼬模型你应该可以使用它...查看我的更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 2016-09-12
    • 2023-03-31
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多