Docs Menu
Docs Home
/ /

Valores indefinidos

En esta guía, puede aprender a controlar cómo se serializa el controlador. undefined valores. De forma predeterminada, el controlador serializa los valores undefined como valores null durante las operaciones de escritura.

Para que el controlador ignore los campos con undefined valores durante la serialización, configure el ignoreUndefined valor true en. Al especificar este valor, el controlador no serializa los campos con undefined valores.

El siguiente ejemplo inserta dos documentos. La primera operación de inserción tiene el valor ignoreUndefined establecido en true, por lo que el controlador no serializa el campo salesTax en esa operación. La segunda operación inserta un documento que tiene el campo salesTax con un valor null:

await myColl.insertOne(
{
state: "Montana",
salesTax: undefined,
},
{ ignoreUndefined: true }
);
await myColl.insertOne({
state: "New Hampshire",
salesTax: undefined,
});

Los documentos aparecen en la colección de la siguiente manera:

{
_id: ...,
state: "Montana",
},
{
_id: ...,
state: "New Hampshire",
salesTax: null
}

Puede especificar la configuración ignoreUndefined en los siguientes niveles:

  • El nivel del cliente

  • El nivel de base de datos

  • El nivel de colección

  • El nivel de operación

La configuración ignoreUndefined se aplica automáticamente al ámbito de la instancia del objeto en el que la especificó y a cualquier otro objeto creado a partir de esa instancia.

Por ejemplo, si se establece la configuración ignoreUndefined al instanciar un objeto de base de datos, cualquier instancia de colección creada a partir de ese objeto heredará dicha configuración. Además, cualquier operación que se realice en esa instancia de colección también heredará dicha configuración.

El siguiente ejemplo realiza una operación de búsqueda y actualización que hereda la configuración ignoreUndefined del objeto de base de datos myDB. Esta operación no produce cambios en los datos porque el controlador ignora el campo gasTax:

const myDB = client.db("test", { ignoreUndefined: true });
// The collection inherits the ignoreUndefined setting
const myColl = myDB.collection("states");
// Any write operation will not serialize undefined values
await myColl.findOneAndUpdate(
{ state: "Georgia" },
{ $set: { gasTax: undefined } }
);

Puede especificar la configuración ignoreUndefined nuevamente en cualquier nivel para anular cualquier configuración heredada.

Por ejemplo, si establece ignoreUndefined en true en su objeto de colección, puede anular la configuración en operaciones de escritura individuales que ejecute en esa colección.

const myColl = myDB.collection("states", { ignoreUndefined: true });
// The insert operation will not serialize undefined values
await myColl.insertOne({
state: "South Dakota",
capitalGainsTax: undefined,
});
// The insert operation will serialize undefined values
await myColl.insertOne(
{ state: "Texas", capitalGainsTax: undefined },
{ ignoreUndefined: false }
);

Volver

BSON

En esta página