Definición
Crea un objeto de datos binarios.
BinData tiene la siguiente sintaxis:
BinData(<sub_type>,<buffer>)- ParameterTipoDescripción
sub_typeentero
bufferstring
El objeto de búfer que contiene datos binarios. Debe ser un valor de cadena codificado en base 64.
Devuelve: Un objeto de datos binarios.
Subtipos Binarios
Especifique uno de los siguientes valores para sub_type:
Número | Descripción |
|---|---|
0 | Subtipo binario genérico |
1 | Datos de funciones |
2 | Binario (antiguo) |
3 | UUID (antiguo) |
4 | UUID |
5 | md5 |
6 | Valor BSON cifrado |
7 | Datos de series de tiempo comprimidos Nuevo en la versión 5.2. |
8 | Datos sensibles, como una clave o un secreto. MongoDB no registra valores literales para datos binarios con subtipo 8. En cambio, MongoDB registra un valor de marcador de posición de |
9 | Datos vectoriales, que son arreglos densamente empaquetados de números del mismo tipo. |
128 | Datos personalizados |
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Comportamiento
La endianidad de tu sistema depende de la arquitectura de tu equipo. Los números en los datos BSON siempre se almacenan como little-endian, y si tu sistema es big-endian esto significa que los datos numéricos se convierten entre big y little endian.
En el contexto de los operadores de expresión de coincidencia de prueba de bits:
Los valores BinData funcionan como máscaras de bits y se interpretan como si fueran números sin signo de longitud arbitraria en formato little-endian. El byte de menor dirección siempre se interpreta como el byte menos significativo. Del mismo modo, el byte direccionable más alto en el BinData siempre se interpreta como el byte más significativo.
Ejemplos
Insertar un BinData() objeto
Utiliza el constructor BinData() para crear la variable bdata.
var bdata = BinData(0, "gf1UcxdHTJ2HQ/EGQrO7mQ==")
Inserte el objeto en la colección testbin.
db.testbin.insertOne( { _id : 1, bin_data: bdata } )
Consulta la colección testbin para el documento insertado.
db.testbin.find()
Puedes ver el buffer binario almacenado en la colección.
{ _id: 1, bin_data: Binary(Buffer.from("81fd547317474c9d8743f10642b3bb99", "hex"), 0) }
Obtener la longitud del BinData() objeto
Utiliza el constructor BinData() para crear la variable bdata.
var bdata = BinData(0, "gf1UcxdHTJ2HQ/EGQrO7mQ==")
Utilice .length() para devolver la longitud en bits del objeto.
bdata.length()
El valor devuelto es:
16