Có phương pháp nào để xác định kích thước của một cá thể cụ thể của mô hình/tài liệu trong MongoDB bằng Mongoid không?Xác định kích thước của tài liệu bằng Mongoid
Trả lời
Vì vậy, bạn có thể nhận được kích thước lý thuyết của tài liệu như bạn đã minh họa trong nhận xét của mình (BSON.serialize(Model.first.as_document).size
).
Tuy nhiên, cần lưu ý rằng đây có thể không phải là kích thước thực của đối tượng "trên đĩa". MongoDB sẽ tự động thêm một bộ đệm vào các tài liệu mới để cho phép chúng phát triển tại chỗ. Khi nói đến việc nhận được kích thước thực tế trên đĩa cho một tài liệu cụ thể, tôi không tin rằng điều này là có thể.
Tuy nhiên, bạn có thể nhận được bộ đệm trung bình bằng cách sử dụng db.collection_name.stats()
.
này dường như không làm việc với Mongoid 3.x nữa. –
này làm việc cho Mongoid 3.1.0:
model.as_document.__bson_dump__.size
Đối 3.x mongoid bạn có thể sử dụng Moped :: BSON :: Document
ví dụ:
your_document = Model.find(id)
# get size
size = Moped::BSON::Document.serialize(your_document.as_document).size
Giải pháp cho 2015 và mongoid (4.0.2):
model_instance.as_document.to_bson.size
W orking cho MongoID 5.x. Với vỏ Mongo và MongoID là đơn giản:
Pick up id đối tượng của bạn
ModelName.first.id # then copy your_id
Run Mongo console
mongo
Lấy kích thước tính bằng byte của tài liệu
Object.bsonsize(db.modelname.find({"_id": ObjectId("your_id")}))
Tôi thực sự tìm ra một giải pháp để có được số byte của một tài liệu cụ thể: 'BSON.serialize (Model.first.as_document) .size' –