Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Especifique los valores de campo permitidos

Cuando crea un Json Schema, puede especificar qué valores están permitidos en un campo en particular. Utilice esta funcionalidad para asegurarse de que los valores de sus campos pertenezcan a un conjunto esperado de valores, como una lista de países. Del mismo modo, puede usar esta funcionalidad para prevenir errores humanos, como errores tipográficos, al insertar datos en una colección.

Para especificar una lista de valores permitidos, utiliza la palabra clave enum en tu JSON schema. La palabra clave enum significa "enumerar" y se usa para listar los valores posibles de un campo.

Imagina una empresa de ropa que solo envía productos a Francia, el Reino Unido y los Estados Unidos. En el validador, puedes enumerar los valores de país permitidos y rechazar los documentos que especifiquen un país diferente.

1

Crea una colección shipping y usa el operador $jsonSchema para establecer reglas de validación de esquema:

db.createCollection("shipping", {
validator: {
$jsonSchema: {
bsonType: "object",
title: "Shipping Country Validation",
properties: {
country: {
enum: [ "France", "United Kingdom", "United States" ],
description: "Must be either France, United Kingdom, or United States"
}
}
}
}
} )

El campo enum en el objeto country solo permite documentos donde el campo country sea France, United Kingdom o United States.

2

La siguiente operación de inserción falla porque country es Germany, lo cual no está en la lista de valores permitidos.

db.shipping.insertOne( {
item: "sweater",
size: "medium",
country: "Germany"
} )

La operación devuelve el siguiente error:

MongoServerError: Document failed validation
Additional information: {
failingDocumentId: ObjectId("630d1057931191850b40d0aa"),
details: {
operatorName: '$jsonSchema',
title: 'Shipping Country Validation',
schemaRulesNotSatisfied: [
{
operatorName: 'properties',
propertiesNotSatisfied: [
{
propertyName: 'country',
description: 'Must be either France, United Kingdom, or United States',
details: [
{
operatorName: 'enum',
specifiedAs: {
enum: [ 'France', 'United Kingdom', 'United States' ]
},
reason: 'value was not found in enum',
consideredValue: 'Germany'
}
]
}
]
}
]
}
}
3

La inserción se realiza correctamente después de que cambies el campo country a uno de los valores permitidos:

db.shipping.insertOne( {
item: "sweater",
size: "medium",
country: "France"
} )
4

Para confirmar que el documento se insertó correctamente, query la colección shipping:

db.shipping.find()

MongoDB devuelve el documento:

[
{
_id: ObjectId("630d10d5931191850b40d0ab"),
item: 'sweater',
size: 'medium',
country: 'France'
}
]

En esta página