Saltar al contenido principal
🇬🇧 English 🇧🇷 Português 🇩🇪 Deutsch
Convertidor de imágenes Convertidor de vídeo Convertidor de audio Convertidor de documentos
Herramientas Guías Formatos Precios API
Iniciar sesión
Guía

BSON: JSON Binario — El Formato Nativo de MongoDB

PC Por Pablo Cirre

Preguntas frecuentes

BSON sacrifica compacidad por velocidad de recorrido. Cada string en BSON tiene un prefijo de longitud de 4 bytes (que permite al parser saltarlo sin escanear hasta el final), cada nombre de campo termina en null (añadiendo 1 byte por campo) y cada elemento va prefijado con un identificador de tipo de 1 byte. Para documentos con muchos valores de string cortos, esta sobrecarga hace que BSON sea más grande que el JSON minificado. Sin embargo, para enteros (almacenados como 4 u 8 bytes en lugar de dígitos de texto), fechas (8 bytes vs string ISO de 24 chars) y datos binarios (sin overhead de base64), BSON es significativamente más compacto.

Envía <strong>PDF</strong> cuando el documento es final y el layout debe preservarse tal cual (contratos, facturas, certificados). Envía <strong>DOCX</strong> cuando los revisores deben editar, comentar o usar control de cambios. Muchos equipos envían ambos: PDF como versión canónica + DOCX para feedback editable. PDF/A es el adecuado para archivado legal (ISO 19005).

Un ObjectId de MongoDB es un identificador único de 12 bytes que consiste en: 4 bytes de timestamp Unix (precisión de segundos), 3 bytes de identificador de máquina (generalmente derivado del nombre de host o dirección MAC), 2 bytes de ID de proceso y 3 bytes de un contador por proceso. Esta estructura significa que los ObjectIds son únicos en un clúster MongoDB sin requerir coordinación del lado del servidor — cada driver cliente genera ObjectIds de forma independiente. El timestamp incrustado también hace que los ObjectIds sean monotónicamente crecientes dentro de un segundo, lo que ayuda al rendimiento del índice y proporciona el tiempo de creación sin un campo de timestamp separado.

Round-trip entre formatos similares (DOCX ↔ ODT, DOCX → PDF) suele ser seguro. Round-trip con funciones específicas del formato (macros de Word, tablas complejas, notas al pie) suele perder fidelidad. Las fuentes incrustadas sobreviven solo si origen y destino lo soportan (PDF sí, DOCX sí, HTML plano no). Previsualiza siempre antes de borrar el original.

Decimal128 es un tipo de punto flotante decimal IEEE 754 de 128 bits que puede representar fracciones decimales exactamente — sin los errores de redondeo del punto flotante binario. Por ejemplo, 0.1 + 0.2 en double IEEE 754 binario da 0.30000000000000004; en Decimal128 da exactamente 0.3. Usa Decimal128 para cualquier valor monetario, cálculo financiero o medición donde importa la representación decimal exacta. Almacena precios, tasas de interés, importes de impuestos y tipos de cambio como Decimal128, no como double (tipo BSON 0x01). El driver Python pymongo expone Decimal128 como bson.Decimal128.

Si el PDF contiene texto real (no imágenes escaneadas), <code>pdftotext</code> de poppler-utils o <a href="/es/convert/pdf-a-txt">PDF a TXT</a> funcionan en segundos. Si el PDF es escaneado, necesitas OCR — Tesseract es el estándar open-source. Las herramientas PDF de KaijuConverter detectan automáticamente texto vs. imagen y enrutan según el caso.

MongoDB usa el motor de almacenamiento WiredTiger (predeterminado desde MongoDB 3.2), que almacena los documentos como secuencias de bytes codificadas en BSON en sus archivos de datos B-tree. WiredTiger aplica compresión Snappy a los bloques de datos de forma predeterminada (configurable a zstd, lzf o ninguno). Los índices almacenan valores de clave codificados en BSON que apuntan a ubicaciones de documentos. El límite de tamaño de documento de 16 MB se impone en la capa BSON antes de que el documento llegue al motor de almacenamiento. WiredTiger soporta bloqueo a nivel de documento para escrituras, por lo que la capacidad de actualización en su lugar de BSON (habilitada por su estructura con prefijo de tamaño) es importante para el modelo de concurrencia de MongoDB.

Edición ligera (anotaciones, firmas, campos de formulario) es viable en cualquier lector PDF. Edición estructural (cambiar párrafos, reemplazar imágenes) es incómoda — PDF es un formato de presentación, no de edición. El flujo robusto es: mantén el origen DOCX/MD/HTML como máster y regenera el PDF cuando haya cambios. Las herramientas que "editan PDF" hacen ingeniería inversa del layout y suelen romperlo.

Usamos cookies y tecnologías similares para personalizar contenido y anuncios, y para analizar el tráfico. Más información sobre cookies.