8
votes

Déterminer la taille d'un document à l'aide de Mongoid

existe-t-il une méthode pour déterminer la taille d'une instance spécifique d'un modèle / document dans un MongoDB à l'aide de Mongoid?


1 commentaires

J'ai effectivement compris une solution pour obtenir le nombre d'octets d'un document spécifique: bson.serialize (modèle.first.as_document) .Size


5 Réponses :


8
votes

Vous pouvez donc obtenir la taille théorique du document comme illustré dans votre commentaire ( bson.serialize (modèle.first.as_document) .Size ).

Cependant, il convient de noter que cela peut ne pas être la taille réelle de l'objet "sur disque". MongoDB ajoutera automatiquement un tampon à de nouveaux documents pour leur permettre de se développer en place. Quand il s'agit d'obtenir la taille réelle sur le disque pour un document spécifique, je ne crois pas que cela soit possible.

Cependant, vous pouvez obtenir un tampon moyen en utilisant db.collection_name.stats () .


0 commentaires

0
votes

Ceci fonctionne pour Mongoid 3.1.0:

model.as_document.__bson_dump__.size


0 commentaires

-1
votes

Pour mongoïde 3.x, vous pouvez utiliser Moped :: BSON :: Document

Par exemple: P>

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


0 commentaires

6
votes

solution pour 2015 et mongoïde (4.0.2): xxx


0 commentaires

-1
votes

Travailler pour Mongoid 5.x. Avec la coquille Mongo et le Mongoïde est simple:

  1. Ramassez votre identifiant d'objet

    modèleName.first.id # puis copiez votre_id

  2. exécuter la console de Mongo

    mongo

  3. Obtenez la taille en octets du document

    objet.bsonsoniser (db.modelname.find ({"_ id": objecid ("your_id")}))


1 commentaires

Ce n'est pas ce dont il parle. Mongoid est un orme rubis pour MongoDB.