使用Mongoid确定文档的大小

时间:2012-01-07 22:16:04

标签: mongodb mongoid

是否有方法使用Mongoid确定MongoDB中模型/文档的特定实例的大小?

5 个答案:

答案 0 :(得分:7)

因此,您可以按照评论(BSON.serialize(Model.first.as_document).size)中的说明获得文档的理论大小。

但是,应该注意的是,这可能不是对象的实际大小"在磁盘上#34;。 MongoDB会自动为新文档添加缓冲区,以允许它们就地增长。当谈到在一个特定文档的磁盘上获取实际大小时,我不相信这是可能的。

但是,您可以使用db.collection_name.stats()获得平均缓冲区。

答案 1 :(得分:5)

2015年和mongoid(4.0.2)的解决方案:

$ionicModal.fromTemplateUrl('templates/login.html', {
    scope: $scope
  }).then(function(modal) {
    $scope.modal = modal;
  });

答案 2 :(得分:0)

这适用于Mongoid 3.1.0:

model.as_document.__bson_dump__.size

答案 3 :(得分:-1)

对于mongoid 3.x,您可以使用Moped :: BSON :: Document

例如:

your_document = Model.find(id)
# get size
size = Moped::BSON::Document.serialize(your_document.as_document).size

答案 4 :(得分:-1)

为MongoID 5.x工作。使用mongo shell和MongoID非常简单:

  1. 拿起您的对象ID

    var express = require('express'); var debug = require('debug')('untitled1:server'); var http = require('http'); var app = express(); var router = express.Router(); app.use('/API',router); app.route('/book').get(function(req, res) { res.render('./index'); }); var server = http.createServer(app); server.listen('3000'); server.on('error', onError); server.on('listening', onListening);

  2. 运行mongo console

    ModelName.first.id # then copy your_id

  3. 获取文档的大小(以字节为单位)

    mongo