使用Mongoid确定文档的大小
答
因此,您可以获得文档的理论大小,如您在评论中所示(BSON.serialize(Model.first.as_document).size
)所示。
但是,应该注意的是,这可能不是“磁盘上”对象的实际大小。 MongoDB会自动为新文档添加一个缓冲区,以允许它们就地增长。当谈到为一个特定的文件获取磁盘的实际大小时,我不认为这是可能的。
但是,您可以使用db.collection_name.stats()
获得平均缓冲区。
+1
这似乎不是一起工作Mongoid 3.x更多。 – 2012-12-04 20:37:00
答
这适用于Mongoid 3.1.0:
model.as_document.__bson_dump__.size
答
对于mongoid 3.x中,你可以使用助力车:: BSON ::文件
例如:
your_document = Model.find(id)
# get size
size = Moped::BSON::Document.serialize(your_document.as_document).size
答
解决方案2015和mongoid(4.0.2):
model_instance.as_document.to_bson.size
答
W请求MongoID 5.x.随着蒙戈外壳和MongoID很简单:
-
拿起你的对象ID
ModelName.first.id # then copy your_id
-
运行蒙戈控制台
mongo
-
获取的字节大小文件
Object.bsonsize(db.modelname.find({"_id": ObjectId("your_id")}))
我居然想出了一个解决方案,以获得某个文档的字节数: 'BSON.serialize(Model.first.as_document).size' – 2012-01-07 22:26:07