Mongodb 使用Mongoid确定文档的大小
是否有一种方法可以使用Mongoid确定MongoDB中模型/文档的特定实例的大小?这样您就可以获得文档的理论大小,如您在注释中所示(Mongodb 使用Mongoid确定文档的大小,mongodb,mongoid,Mongodb,Mongoid,是否有一种方法可以使用Mongoid确定MongoDB中模型/文档的特定实例的大小?这样您就可以获得文档的理论大小,如您在注释中所示(BSON.serialize(model.first.as_document).size) 但是,应该注意,这可能不是“磁盘上”对象的实际大小。MongoDB将自动为新文档添加一个缓冲区,以允许它们就地增长。当涉及到获取一个特定文档的实际磁盘大小时,我认为这是不可能的 但是,您可以通过使用db.collection\u name.stats()获得平均缓冲区,这适
BSON.serialize(model.first.as_document).size
)
但是,应该注意,这可能不是“磁盘上”对象的实际大小。MongoDB将自动为新文档添加一个缓冲区,以允许它们就地增长。当涉及到获取一个特定文档的实际磁盘大小时,我认为这是不可能的
但是,您可以通过使用
db.collection\u name.stats()
获得平均缓冲区,这适用于Mongoid 3.1.0:
model.as_document.__bson_dump__.size
对于mongoid 3.x,您可以使用Moped::BSON::Document 例如:
your_document = Model.find(id)
# get size
size = Moped::BSON::Document.serialize(your_document.as_document).size
2015年和mongoid的解决方案(4.0.2):
为MongoID 5.x工作。使用mongo shell和MongoID非常简单:
ModelName.first.id#然后复制您的_id
mongo
Object.bsonsize(db.modelname.find({“\u id”:ObjectId(“您的\u id”)}))
实际上,我想出了一个解决方案来获取特定文档的字节数:
BSON.serialize(Model.first.as_document)。size
这不是他所说的。Mongoid是MongoDB的Ruby ORM。
model_instance.as_document.to_bson.size